@takuhon/core 0.11.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +405 -9
- package/dist/index.js +879 -8
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/takuhon.schema.json +54 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/lib/runtime/ucs2length.ts","../../../node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.20.0/node_modules/ajv-formats/src/formats.ts","../../../node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js","../../../node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/lib/runtime/equal.ts","../src/generated/takuhon-validator.cjs","../takuhon.schema.json","../src/schema.ts","../src/validate.ts","../src/normalize.ts","../src/locale-tag.ts","../src/resolve-locale.ts","../src/jsonld.ts","../src/export.ts","../src/privacy-filter.ts","../src/migrations/_chain.ts","../src/migrations/v0.1.0-to-v0.2.0.ts","../src/migrations/v0.2.0-to-v0.3.0.ts","../src/migrations/v0.3.0-to-v0.4.0.ts","../src/migrations/index.ts","../src/migrate.ts","../src/storage-interface.ts","../src/index.ts"],"sourcesContent":["// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nexport default function ucs2length(str: string): number {\n const len = str.length\n let length = 0\n let pos = 0\n let value: number\n while (pos < len) {\n length++\n value = str.charCodeAt(pos++)\n if (value >= 0xd800 && value <= 0xdbff && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos)\n if ((value & 0xfc00) === 0xdc00) pos++ // low surrogate\n }\n }\n return length\n}\n\nucs2length.code = 'require(\"ajv/dist/runtime/ucs2length\").default'\n","import type {Format, FormatDefinition} from \"ajv\"\nimport type {FormatValidator, FormatCompare} from \"ajv/dist/types\"\n\nexport type FormatMode = \"fast\" | \"full\"\n\nexport type FormatName =\n | \"date\"\n | \"time\"\n | \"date-time\"\n | \"iso-time\"\n | \"iso-date-time\"\n | \"duration\"\n | \"uri\"\n | \"uri-reference\"\n | \"uri-template\"\n | \"url\"\n | \"email\"\n | \"hostname\"\n | \"ipv4\"\n | \"ipv6\"\n | \"regex\"\n | \"uuid\"\n | \"json-pointer\"\n | \"json-pointer-uri-fragment\"\n | \"relative-json-pointer\"\n | \"byte\"\n | \"int32\"\n | \"int64\"\n | \"float\"\n | \"double\"\n | \"password\"\n | \"binary\"\n\nexport type DefinedFormats = {\n [key in FormatName]: Format\n}\n\nfunction fmtDef(\n validate: RegExp | FormatValidator<string>,\n compare: FormatCompare<string>\n): FormatDefinition<string> {\n return {validate, compare}\n}\n\nexport const fullFormats: DefinedFormats = {\n // date: http://tools.ietf.org/html/rfc3339#section-5.6\n date: fmtDef(date, compareDate),\n // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n time: fmtDef(getTime(true), compareTime),\n \"date-time\": fmtDef(getDateTime(true), compareDateTime),\n \"iso-time\": fmtDef(getTime(), compareIsoTime),\n \"iso-date-time\": fmtDef(getDateTime(), compareIsoDateTime),\n // duration: https://tools.ietf.org/html/rfc3339#appendix-A\n duration: /^P(?!$)((\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+S)?)?|(\\d+W)?)$/,\n uri,\n \"uri-reference\":\n /^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'\"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,\n // uri-template: https://tools.ietf.org/html/rfc6570\n \"uri-template\":\n /^(?:(?:[^\\x00-\\x20\"'<>%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i,\n // For the source: https://gist.github.com/dperini/729294\n // For test cases: https://mathiasbynens.be/demo/url-regex\n url: /^(?:https?|ftp):\\/\\/(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)(?:\\.(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu,\n email:\n /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname:\n /^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i,\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)$/,\n ipv6: /^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))$/i,\n regex,\n // uuid: http://tools.ietf.org/html/rfc4122\n uuid: /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,\n // JSON-pointer: https://tools.ietf.org/html/rfc6901\n // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n \"json-pointer\": /^(?:\\/(?:[^~/]|~0|~1)*)*$/,\n \"json-pointer-uri-fragment\": /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,\n // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n \"relative-json-pointer\": /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/,\n // the following formats are used by the openapi specification: https://spec.openapis.org/oas/v3.0.0#data-types\n // byte: https://github.com/miguelmota/is-base64\n byte,\n // signed 32 bit integer\n int32: {type: \"number\", validate: validateInt32},\n // signed 64 bit integer\n int64: {type: \"number\", validate: validateInt64},\n // C-type float\n float: {type: \"number\", validate: validateNumber},\n // C-type double\n double: {type: \"number\", validate: validateNumber},\n // hint to the UI to hide input strings\n password: true,\n // unchecked string payload\n binary: true,\n}\n\nexport const fastFormats: DefinedFormats = {\n ...fullFormats,\n date: fmtDef(/^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/, compareDate),\n time: fmtDef(\n /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i,\n compareTime\n ),\n \"date-time\": fmtDef(\n /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\dt(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i,\n compareDateTime\n ),\n \"iso-time\": fmtDef(\n /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i,\n compareIsoTime\n ),\n \"iso-date-time\": fmtDef(\n /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i,\n compareIsoDateTime\n ),\n // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n uri: /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n \"uri-reference\": /^(?:(?:[a-z][a-z0-9+\\-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n // email (sources from jsen validator):\n // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'wilful violation')\n email:\n /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n}\n\nexport const formatNames = Object.keys(fullFormats) as FormatName[]\n\nfunction isLeapYear(year: number): boolean {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0)\n}\n\nconst DATE = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/\nconst DAYS = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]\n\nfunction date(str: string): boolean {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n const matches: string[] | null = DATE.exec(str)\n if (!matches) return false\n const year: number = +matches[1]\n const month: number = +matches[2]\n const day: number = +matches[3]\n return (\n month >= 1 &&\n month <= 12 &&\n day >= 1 &&\n day <= (month === 2 && isLeapYear(year) ? 29 : DAYS[month])\n )\n}\n\nfunction compareDate(d1: string, d2: string): number | undefined {\n if (!(d1 && d2)) return undefined\n if (d1 > d2) return 1\n if (d1 < d2) return -1\n return 0\n}\n\nconst TIME = /^(\\d\\d):(\\d\\d):(\\d\\d(?:\\.\\d+)?)(z|([+-])(\\d\\d)(?::?(\\d\\d))?)?$/i\n\nfunction getTime(strictTimeZone?: boolean): (str: string) => boolean {\n return function time(str: string): boolean {\n const matches: string[] | null = TIME.exec(str)\n if (!matches) return false\n const hr: number = +matches[1]\n const min: number = +matches[2]\n const sec: number = +matches[3]\n const tz: string | undefined = matches[4]\n const tzSign: number = matches[5] === \"-\" ? -1 : 1\n const tzH: number = +(matches[6] || 0)\n const tzM: number = +(matches[7] || 0)\n if (tzH > 23 || tzM > 59 || (strictTimeZone && !tz)) return false\n if (hr <= 23 && min <= 59 && sec < 60) return true\n // leap second\n const utcMin = min - tzM * tzSign\n const utcHr = hr - tzH * tzSign - (utcMin < 0 ? 1 : 0)\n return (utcHr === 23 || utcHr === -1) && (utcMin === 59 || utcMin === -1) && sec < 61\n }\n}\n\nfunction compareTime(s1: string, s2: string): number | undefined {\n if (!(s1 && s2)) return undefined\n const t1 = new Date(\"2020-01-01T\" + s1).valueOf()\n const t2 = new Date(\"2020-01-01T\" + s2).valueOf()\n if (!(t1 && t2)) return undefined\n return t1 - t2\n}\n\nfunction compareIsoTime(t1: string, t2: string): number | undefined {\n if (!(t1 && t2)) return undefined\n const a1 = TIME.exec(t1)\n const a2 = TIME.exec(t2)\n if (!(a1 && a2)) return undefined\n t1 = a1[1] + a1[2] + a1[3]\n t2 = a2[1] + a2[2] + a2[3]\n if (t1 > t2) return 1\n if (t1 < t2) return -1\n return 0\n}\n\nconst DATE_TIME_SEPARATOR = /t|\\s/i\nfunction getDateTime(strictTimeZone?: boolean): (str: string) => boolean {\n const time = getTime(strictTimeZone)\n\n return function date_time(str: string): boolean {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n const dateTime: string[] = str.split(DATE_TIME_SEPARATOR)\n return dateTime.length === 2 && date(dateTime[0]) && time(dateTime[1])\n }\n}\n\nfunction compareDateTime(dt1: string, dt2: string): number | undefined {\n if (!(dt1 && dt2)) return undefined\n const d1 = new Date(dt1).valueOf()\n const d2 = new Date(dt2).valueOf()\n if (!(d1 && d2)) return undefined\n return d1 - d2\n}\n\nfunction compareIsoDateTime(dt1: string, dt2: string): number | undefined {\n if (!(dt1 && dt2)) return undefined\n const [d1, t1] = dt1.split(DATE_TIME_SEPARATOR)\n const [d2, t2] = dt2.split(DATE_TIME_SEPARATOR)\n const res = compareDate(d1, d2)\n if (res === undefined) return undefined\n return res || compareTime(t1, t2)\n}\n\nconst NOT_URI_FRAGMENT = /\\/|:/\nconst URI =\n /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i\n\nfunction uri(str: string): boolean {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return NOT_URI_FRAGMENT.test(str) && URI.test(str)\n}\n\nconst BYTE = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm\n\nfunction byte(str: string): boolean {\n BYTE.lastIndex = 0\n return BYTE.test(str)\n}\n\nconst MIN_INT32 = -(2 ** 31)\nconst MAX_INT32 = 2 ** 31 - 1\n\nfunction validateInt32(value: number): boolean {\n return Number.isInteger(value) && value <= MAX_INT32 && value >= MIN_INT32\n}\n\nfunction validateInt64(value: number): boolean {\n // JSON and javascript max Int is 2**53, so any int that passes isInteger is valid for Int64\n return Number.isInteger(value)\n}\n\nfunction validateNumber(): boolean {\n return true\n}\n\nconst Z_ANCHOR = /[^\\\\]\\\\Z/\nfunction regex(str: string): boolean {\n if (Z_ANCHOR.test(str)) return false\n try {\n new RegExp(str)\n return true\n } catch (e) {\n return false\n }\n}\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","// https://github.com/ajv-validator/ajv/issues/889\nimport * as equal from \"fast-deep-equal\"\n\ntype Equal = typeof equal & {code: string}\n;(equal as Equal).code = 'require(\"ajv/dist/runtime/equal\").default'\n\nexport default equal as Equal\n","/* eslint-disable */\n// AUTO-GENERATED by scripts/generate-validator.mjs — do not edit by hand.\n// Standalone Ajv validator for takuhon.schema.json (no runtime eval).\n\"use strict\";module.exports = validate20;module.exports.default = validate20;const schema31 = {\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"$id\":\"https://takuhon.example/schemas/0.4.0/takuhon.schema.json\",\"title\":\"Takuhon Profile\",\"description\":\"Portable profile data format consumed by @takuhon/core. The canonical contract for profile content authored as takuhon.json.\",\"type\":\"object\",\"additionalProperties\":false,\"required\":[\"schemaVersion\",\"profile\",\"links\",\"careers\",\"projects\",\"skills\",\"contact\",\"settings\",\"meta\"],\"properties\":{\"schemaVersion\":{\"type\":\"string\",\"pattern\":\"^[0-9]+\\\\.[0-9]+\\\\.[0-9]+(-[a-zA-Z0-9.-]+)?$\",\"description\":\"Semantic version of the takuhon schema this document conforms to.\"},\"profile\":{\"$ref\":\"#/$defs/Profile\"},\"links\":{\"type\":\"array\",\"maxItems\":100,\"items\":{\"$ref\":\"#/$defs/Link\"}},\"careers\":{\"type\":\"array\",\"maxItems\":50,\"items\":{\"$ref\":\"#/$defs/Career\"}},\"projects\":{\"type\":\"array\",\"maxItems\":100,\"items\":{\"$ref\":\"#/$defs/Project\"}},\"skills\":{\"type\":\"array\",\"maxItems\":200,\"items\":{\"$ref\":\"#/$defs/Skill\"}},\"certifications\":{\"type\":\"array\",\"maxItems\":50,\"items\":{\"$ref\":\"#/$defs/Certification\"}},\"memberships\":{\"type\":\"array\",\"maxItems\":50,\"items\":{\"$ref\":\"#/$defs/Membership\"}},\"volunteering\":{\"type\":\"array\",\"maxItems\":50,\"items\":{\"$ref\":\"#/$defs/Volunteering\"}},\"honors\":{\"type\":\"array\",\"maxItems\":50,\"items\":{\"$ref\":\"#/$defs/Honor\"}},\"education\":{\"type\":\"array\",\"maxItems\":30,\"items\":{\"$ref\":\"#/$defs/Education\"}},\"publications\":{\"type\":\"array\",\"maxItems\":100,\"items\":{\"$ref\":\"#/$defs/Publication\"}},\"languages\":{\"type\":\"array\",\"maxItems\":30,\"items\":{\"$ref\":\"#/$defs/Language\"}},\"courses\":{\"type\":\"array\",\"maxItems\":100,\"items\":{\"$ref\":\"#/$defs/Course\"}},\"patents\":{\"type\":\"array\",\"maxItems\":50,\"items\":{\"$ref\":\"#/$defs/Patent\"}},\"testScores\":{\"type\":\"array\",\"maxItems\":30,\"items\":{\"$ref\":\"#/$defs/TestScore\"}},\"recommendations\":{\"type\":\"array\",\"maxItems\":50,\"items\":{\"$ref\":\"#/$defs/Recommendation\"}},\"contact\":{\"$ref\":\"#/$defs/Contact\"},\"settings\":{\"$ref\":\"#/$defs/Settings\"},\"meta\":{\"$ref\":\"#/$defs/Meta\"}},\"$defs\":{\"LocaleTag\":{\"type\":\"string\",\"minLength\":2,\"maxLength\":35,\"pattern\":\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\",\"description\":\"BCP-47 language tag (e.g., 'en', 'ja', 'zh-Hant', 'pt-BR').\"},\"Iso3166Alpha2\":{\"type\":\"string\",\"pattern\":\"^[A-Z]{2}$\",\"description\":\"ISO 3166-1 alpha-2 country code (uppercase, two letters).\"},\"YearMonth\":{\"type\":\"string\",\"pattern\":\"^[0-9]{4}-(0[1-9]|1[0-2])$\",\"description\":\"Year-month in 'YYYY-MM' format (Gregorian calendar).\"},\"IsoDateTime\":{\"type\":\"string\",\"format\":\"date-time\",\"description\":\"ISO 8601 date-time (e.g., 2026-05-11T12:34:56Z).\"},\"Url\":{\"type\":\"string\",\"format\":\"uri\",\"maxLength\":2048},\"Email\":{\"type\":\"string\",\"format\":\"email\",\"maxLength\":254},\"Slug\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":64,\"pattern\":\"^[a-z0-9][a-z0-9-]*$\",\"description\":\"URL-safe identifier (lowercase alphanumerics and hyphens, must start with alphanumeric).\"},\"LocalizedTitle\":{\"type\":\"object\",\"minProperties\":1,\"propertyNames\":{\"type\":\"string\",\"pattern\":\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},\"additionalProperties\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":200},\"description\":\"Map of BCP-47 locale tag to short title-like string (max 200 chars per value).\"},\"LocalizedBody\":{\"type\":\"object\",\"minProperties\":1,\"propertyNames\":{\"type\":\"string\",\"pattern\":\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},\"additionalProperties\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":5000},\"description\":\"Map of BCP-47 locale tag to body-length string (max 5000 chars per value).\"},\"LinkType\":{\"type\":\"string\",\"enum\":[\"website\",\"blog\",\"github\",\"gitlab\",\"linkedin\",\"x\",\"mastodon\",\"bluesky\",\"instagram\",\"youtube\",\"threads\",\"facebook\",\"email\",\"rss\",\"custom\"],\"description\":\"Identifies the kind of link. 'custom' requires iconUrl.\"},\"Profile\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"displayName\"],\"properties\":{\"displayName\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"tagline\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"bio\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"avatar\":{\"$ref\":\"#/$defs/Avatar\"},\"location\":{\"$ref\":\"#/$defs/Address\"}}},\"Avatar\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"url\"],\"properties\":{\"url\":{\"type\":\"string\",\"format\":\"uri-reference\",\"maxLength\":2048,\"description\":\"URL or path to the avatar image.\"},\"alt\":{\"$ref\":\"#/$defs/LocalizedTitle\"}}},\"Address\":{\"type\":\"object\",\"additionalProperties\":true,\"properties\":{\"country\":{\"$ref\":\"#/$defs/Iso3166Alpha2\"},\"region\":{\"type\":\"string\",\"maxLength\":100},\"locality\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"display\":{\"$ref\":\"#/$defs/LocalizedTitle\"}}},\"Link\":{\"type\":\"object\",\"additionalProperties\":false,\"required\":[\"id\",\"type\",\"url\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"type\":{\"$ref\":\"#/$defs/LinkType\"},\"label\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"featured\":{\"type\":\"boolean\"},\"order\":{\"type\":\"integer\",\"minimum\":0},\"iconUrl\":{\"$ref\":\"#/$defs/Url\"}},\"allOf\":[{\"if\":{\"properties\":{\"type\":{\"const\":\"custom\"}},\"required\":[\"type\"]},\"then\":{\"properties\":{\"iconUrl\":{\"$ref\":\"#/$defs/Url\"}},\"required\":[\"iconUrl\"]}}]},\"Career\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"organization\",\"role\",\"startDate\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"organization\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"role\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"startDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"endDate\":{\"anyOf\":[{\"$ref\":\"#/$defs/YearMonth\"},{\"type\":\"null\"}]},\"isCurrent\":{\"type\":\"boolean\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"location\":{\"$ref\":\"#/$defs/Address\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}},\"Project\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"title\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"title\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"tags\":{\"type\":\"array\",\"maxItems\":30,\"items\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":50}},\"relatedCareerId\":{\"$ref\":\"#/$defs/Slug\"},\"startDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"endDate\":{\"anyOf\":[{\"$ref\":\"#/$defs/YearMonth\"},{\"type\":\"null\"}]},\"highlighted\":{\"type\":\"boolean\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}},\"Skill\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"label\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"label\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100},\"category\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":64,\"description\":\"Recommended values (extensible): programming, design, business, communication, language, music, art, sports, other.\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}},\"Contact\":{\"type\":\"object\",\"additionalProperties\":true,\"properties\":{\"email\":{\"$ref\":\"#/$defs/Email\"},\"showEmail\":{\"type\":\"boolean\",\"default\":false},\"formUrl\":{\"$ref\":\"#/$defs/Url\"}}},\"Settings\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"defaultLocale\",\"availableLocales\"],\"properties\":{\"defaultLocale\":{\"$ref\":\"#/$defs/LocaleTag\"},\"fallbackLocale\":{\"$ref\":\"#/$defs/LocaleTag\"},\"availableLocales\":{\"type\":\"array\",\"minItems\":1,\"maxItems\":50,\"uniqueItems\":true,\"items\":{\"$ref\":\"#/$defs/LocaleTag\"}},\"theme\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":64,\"description\":\"UI theme identifier. 'default' is the built-in theme; adapters may add more.\"},\"showPoweredBy\":{\"type\":\"boolean\",\"default\":true,\"description\":\"Display the 'Powered by takuhon' attribution in the rendered profile.\"},\"enableJsonLd\":{\"type\":\"boolean\",\"default\":true,\"description\":\"Emit Schema.org JSON-LD on the rendered profile page.\"},\"enableApi\":{\"type\":\"boolean\",\"default\":true,\"description\":\"Expose the public read API endpoints (GET /api/profile, /api/jsonld, /api/schema, /takuhon.json).\"},\"enableAnalytics\":{\"type\":\"boolean\",\"default\":false,\"description\":\"Opt-in flag for first-party analytics. Default is false to keep takuhon privacy-respecting by default.\"}}},\"Meta\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"contentLicense\"],\"properties\":{\"createdAt\":{\"$ref\":\"#/$defs/IsoDateTime\"},\"updatedAt\":{\"$ref\":\"#/$defs/IsoDateTime\"},\"generator\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100,\"description\":\"Tool that produced this document (e.g. 'Takuhon', 'create-takuhon@0.1.0').\"},\"contentLicense\":{\"$ref\":\"#/$defs/ContentLicense\"},\"privacy\":{\"$ref\":\"#/$defs/MetaPrivacy\"}}},\"ContentLicense\":{\"type\":\"object\",\"additionalProperties\":false,\"required\":[\"spdxId\"],\"properties\":{\"spdxId\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":64,\"description\":\"SPDX identifier (e.g., 'CC-BY-4.0', 'CC0-1.0') or 'Proprietary'. No default; the profile owner must choose explicitly.\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"attribution\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":200},\"url\":{\"$ref\":\"#/$defs/Url\"}}},\"rights\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":1000,\"description\":\"Free-form rights statement (used when spdxId='Proprietary' or for additional notices).\"}}},\"MetaPrivacy\":{\"type\":\"object\",\"additionalProperties\":true,\"description\":\"Opt-out flags that strip personally identifying fields from public API output (GET /api/profile, /api/jsonld, /takuhon.json). Admin endpoints (PUT /api/admin/*, GET /api/admin/export) ignore these flags. Privacy-by-default: omitting the object or individual flags is equivalent to true.\",\"properties\":{\"hideCredentialIds\":{\"type\":\"boolean\",\"default\":true,\"description\":\"When true (default), strip certifications[*].credentialId from public responses.\"},\"hideEducationGrades\":{\"type\":\"boolean\",\"default\":true,\"description\":\"When true (default), strip education[*].grade from public responses.\"}}},\"Certification\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"title\",\"issuingOrganization\",\"issueDate\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"title\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"issuingOrganization\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"issueDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"expirationDate\":{\"anyOf\":[{\"$ref\":\"#/$defs/YearMonth\"},{\"type\":\"null\"}],\"description\":\"null = explicitly 'no expiration'. Omit if unknown/unstated.\"},\"credentialId\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100,\"description\":\"License or certificate number. Public exposure controlled by meta.privacy.hideCredentialIds.\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}},\"Membership\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"organization\",\"startDate\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"organization\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"role\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"startDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"endDate\":{\"anyOf\":[{\"$ref\":\"#/$defs/YearMonth\"},{\"type\":\"null\"}],\"description\":\"null = ongoing. Omit if unknown.\"},\"isCurrent\":{\"type\":\"boolean\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}},\"Volunteering\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"organization\",\"role\",\"startDate\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"organization\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"role\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"cause\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"startDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"endDate\":{\"anyOf\":[{\"$ref\":\"#/$defs/YearMonth\"},{\"type\":\"null\"}]},\"isCurrent\":{\"type\":\"boolean\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}},\"Honor\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"title\",\"issuer\",\"date\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"title\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"issuer\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"date\":{\"$ref\":\"#/$defs/YearMonth\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}},\"Education\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"institution\",\"startDate\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"institution\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"degree\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"fieldOfStudy\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"grade\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":50,\"description\":\"Free-form grade / class / GPA. Public exposure controlled by meta.privacy.hideEducationGrades.\"},\"startDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"endDate\":{\"anyOf\":[{\"$ref\":\"#/$defs/YearMonth\"},{\"type\":\"null\"}],\"description\":\"null = currently enrolled.\"},\"isCurrent\":{\"type\":\"boolean\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}},\"Publication\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"title\",\"date\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"title\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"publisher\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"date\":{\"$ref\":\"#/$defs/YearMonth\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"doi\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":200,\"description\":\"DOI identifier (e.g. '10.1145/3548643.3548644'). The full URL goes in 'url'.\"},\"coAuthors\":{\"type\":\"array\",\"maxItems\":50,\"items\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100},\"description\":\"Co-author names in original script. Excludes the profile owner.\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}},\"Language\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"language\",\"proficiency\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"language\":{\"$ref\":\"#/$defs/LocaleTag\"},\"displayName\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"proficiency\":{\"type\":\"string\",\"enum\":[\"native\",\"fluent\",\"professional\",\"intermediate\",\"basic\"],\"description\":\"LinkedIn-compatible 5-level proficiency.\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}},\"Course\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"title\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"title\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"provider\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"courseNumber\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":50},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"completionDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"certificateUrl\":{\"$ref\":\"#/$defs/Url\"},\"relatedEducationId\":{\"$ref\":\"#/$defs/Slug\",\"description\":\"Optional reference to an education[].id (e.g. for university coursework).\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}},\"Patent\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"title\",\"patentNumber\",\"status\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"title\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"patentNumber\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100},\"office\":{\"type\":\"string\",\"maxLength\":100,\"description\":\"Patent office name (e.g. 'USPTO', 'JPO', 'EPO').\"},\"status\":{\"type\":\"string\",\"enum\":[\"pending\",\"issued\",\"expired\",\"abandoned\"]},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"filingDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"grantDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"coInventors\":{\"type\":\"array\",\"maxItems\":20,\"items\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100}},\"order\":{\"type\":\"integer\",\"minimum\":0}}},\"TestScore\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"title\",\"score\",\"date\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"title\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"score\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":50,\"description\":\"Free-form score string (e.g. '112 / 120', '330', 'N1 Pass', or a percentile). The validator does not interpret its contents.\"},\"date\":{\"$ref\":\"#/$defs/YearMonth\"},\"relatedEducationId\":{\"$ref\":\"#/$defs/Slug\",\"description\":\"Optional reference to an education[].id (e.g. for a university course exam).\"},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}},\"Recommendation\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"body\",\"author\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"body\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"author\":{\"$ref\":\"#/$defs/RecommendationAuthor\"},\"relationship\":{\"$ref\":\"#/$defs/LocalizedTitle\",\"description\":\"How the recommender relates to the profile owner (e.g. 'managed directly', 'worked together').\"},\"date\":{\"$ref\":\"#/$defs/YearMonth\"},\"relatedCareerId\":{\"$ref\":\"#/$defs/Slug\",\"description\":\"Optional reference to a careers[].id (the position the recommendation pertains to).\"},\"relatedEducationId\":{\"$ref\":\"#/$defs/Slug\",\"description\":\"Optional reference to an education[].id (e.g. a recommendation from a professor).\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}},\"RecommendationAuthor\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"name\"],\"properties\":{\"name\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100,\"description\":\"Recommender's name, in its original script. Owner-curated; takuhon does not verify it.\"},\"headline\":{\"$ref\":\"#/$defs/LocalizedTitle\",\"description\":\"Recommender's title / role / organization at the time of the recommendation.\"},\"url\":{\"$ref\":\"#/$defs/Url\",\"description\":\"Link to the recommender's profile, for external verification by the reader.\"}}}}};const func1 = Object.prototype.hasOwnProperty;const pattern4 = new RegExp(\"^[0-9]+\\\\.[0-9]+\\\\.[0-9]+(-[a-zA-Z0-9.-]+)?$\", \"u\");const schema32 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"displayName\"],\"properties\":{\"displayName\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"tagline\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"bio\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"avatar\":{\"$ref\":\"#/$defs/Avatar\"},\"location\":{\"$ref\":\"#/$defs/Address\"}}};const schema33 = {\"type\":\"object\",\"minProperties\":1,\"propertyNames\":{\"type\":\"string\",\"pattern\":\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},\"additionalProperties\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":200},\"description\":\"Map of BCP-47 locale tag to short title-like string (max 200 chars per value).\"};const schema35 = {\"type\":\"object\",\"minProperties\":1,\"propertyNames\":{\"type\":\"string\",\"pattern\":\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},\"additionalProperties\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":5000},\"description\":\"Map of BCP-47 locale tag to body-length string (max 5000 chars per value).\"};const pattern5 = new RegExp(\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\", \"u\");const func2 = require(\"ajv/dist/runtime/ucs2length\").default;const schema36 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"url\"],\"properties\":{\"url\":{\"type\":\"string\",\"format\":\"uri-reference\",\"maxLength\":2048,\"description\":\"URL or path to the avatar image.\"},\"alt\":{\"$ref\":\"#/$defs/LocalizedTitle\"}}};const formats0 = /^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'\"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function validate22(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate22.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.url === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"url\"},message:\"must have required property '\"+\"url\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.url !== undefined){let data0 = data.url;if(typeof data0 === \"string\"){if(func2(data0) > 2048){const err1 = {instancePath:instancePath+\"/url\",schemaPath:\"#/properties/url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(!(formats0.test(data0))){const err2 = {instancePath:instancePath+\"/url\",schemaPath:\"#/properties/url/format\",keyword:\"format\",params:{format: \"uri-reference\"},message:\"must match format \\\"\"+\"uri-reference\"+\"\\\"\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}else {const err3 = {instancePath:instancePath+\"/url\",schemaPath:\"#/properties/url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}if(data.alt !== undefined){let data1 = data.alt;if(data1 && typeof data1 == \"object\" && !Array.isArray(data1)){if(Object.keys(data1).length < 1){const err4 = {instancePath:instancePath+\"/alt\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}for(const key0 in data1){const _errs7 = errors;if(typeof key0 === \"string\"){if(!pattern5.test(key0)){const err5 = {instancePath:instancePath+\"/alt\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key0};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}else {const err6 = {instancePath:instancePath+\"/alt\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key0};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}var valid2 = _errs7 === errors;if(!valid2){const err7 = {instancePath:instancePath+\"/alt\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key0},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}for(const key1 in data1){let data2 = data1[key1];if(typeof data2 === \"string\"){if(func2(data2) > 200){const err8 = {instancePath:instancePath+\"/alt/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}if(func2(data2) < 1){const err9 = {instancePath:instancePath+\"/alt/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}else {const err10 = {instancePath:instancePath+\"/alt/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}}else {const err11 = {instancePath:instancePath+\"/alt\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}}else {const err12 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}validate22.errors = vErrors;return errors === 0;}validate22.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema38 = {\"type\":\"object\",\"additionalProperties\":true,\"properties\":{\"country\":{\"$ref\":\"#/$defs/Iso3166Alpha2\"},\"region\":{\"type\":\"string\",\"maxLength\":100},\"locality\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"display\":{\"$ref\":\"#/$defs/LocalizedTitle\"}}};const schema39 = {\"type\":\"string\",\"pattern\":\"^[A-Z]{2}$\",\"description\":\"ISO 3166-1 alpha-2 country code (uppercase, two letters).\"};const pattern9 = new RegExp(\"^[A-Z]{2}$\", \"u\");function validate24(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate24.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.country !== undefined){let data0 = data.country;if(typeof data0 === \"string\"){if(!pattern9.test(data0)){const err0 = {instancePath:instancePath+\"/country\",schemaPath:\"#/$defs/Iso3166Alpha2/pattern\",keyword:\"pattern\",params:{pattern: \"^[A-Z]{2}$\"},message:\"must match pattern \\\"\"+\"^[A-Z]{2}$\"+\"\\\"\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}else {const err1 = {instancePath:instancePath+\"/country\",schemaPath:\"#/$defs/Iso3166Alpha2/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}if(data.region !== undefined){let data1 = data.region;if(typeof data1 === \"string\"){if(func2(data1) > 100){const err2 = {instancePath:instancePath+\"/region\",schemaPath:\"#/properties/region/maxLength\",keyword:\"maxLength\",params:{limit: 100},message:\"must NOT have more than 100 characters\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}else {const err3 = {instancePath:instancePath+\"/region\",schemaPath:\"#/properties/region/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}if(data.locality !== undefined){let data2 = data.locality;if(data2 && typeof data2 == \"object\" && !Array.isArray(data2)){if(Object.keys(data2).length < 1){const err4 = {instancePath:instancePath+\"/locality\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}for(const key0 in data2){const _errs10 = errors;if(typeof key0 === \"string\"){if(!pattern5.test(key0)){const err5 = {instancePath:instancePath+\"/locality\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key0};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}else {const err6 = {instancePath:instancePath+\"/locality\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key0};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}var valid3 = _errs10 === errors;if(!valid3){const err7 = {instancePath:instancePath+\"/locality\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key0},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}for(const key1 in data2){let data3 = data2[key1];if(typeof data3 === \"string\"){if(func2(data3) > 200){const err8 = {instancePath:instancePath+\"/locality/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}if(func2(data3) < 1){const err9 = {instancePath:instancePath+\"/locality/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}else {const err10 = {instancePath:instancePath+\"/locality/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}}else {const err11 = {instancePath:instancePath+\"/locality\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}if(data.display !== undefined){let data4 = data.display;if(data4 && typeof data4 == \"object\" && !Array.isArray(data4)){if(Object.keys(data4).length < 1){const err12 = {instancePath:instancePath+\"/display\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}for(const key2 in data4){const _errs18 = errors;if(typeof key2 === \"string\"){if(!pattern5.test(key2)){const err13 = {instancePath:instancePath+\"/display\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key2};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}else {const err14 = {instancePath:instancePath+\"/display\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key2};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}var valid6 = _errs18 === errors;if(!valid6){const err15 = {instancePath:instancePath+\"/display\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key2},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}for(const key3 in data4){let data5 = data4[key3];if(typeof data5 === \"string\"){if(func2(data5) > 200){const err16 = {instancePath:instancePath+\"/display/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}if(func2(data5) < 1){const err17 = {instancePath:instancePath+\"/display/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}else {const err18 = {instancePath:instancePath+\"/display/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}}else {const err19 = {instancePath:instancePath+\"/display\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}}else {const err20 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}validate24.errors = vErrors;return errors === 0;}validate24.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};function validate21(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate21.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.displayName === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"displayName\"},message:\"must have required property '\"+\"displayName\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.displayName !== undefined){let data0 = data.displayName;if(data0 && typeof data0 == \"object\" && !Array.isArray(data0)){if(Object.keys(data0).length < 1){const err1 = {instancePath:instancePath+\"/displayName\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}for(const key0 in data0){const _errs5 = errors;if(typeof key0 === \"string\"){if(!pattern5.test(key0)){const err2 = {instancePath:instancePath+\"/displayName\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key0};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}else {const err3 = {instancePath:instancePath+\"/displayName\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key0};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}var valid2 = _errs5 === errors;if(!valid2){const err4 = {instancePath:instancePath+\"/displayName\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key0},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}for(const key1 in data0){let data1 = data0[key1];if(typeof data1 === \"string\"){if(func2(data1) > 200){const err5 = {instancePath:instancePath+\"/displayName/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(func2(data1) < 1){const err6 = {instancePath:instancePath+\"/displayName/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}else {const err7 = {instancePath:instancePath+\"/displayName/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}}else {const err8 = {instancePath:instancePath+\"/displayName\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}if(data.tagline !== undefined){let data2 = data.tagline;if(data2 && typeof data2 == \"object\" && !Array.isArray(data2)){if(Object.keys(data2).length < 1){const err9 = {instancePath:instancePath+\"/tagline\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}for(const key2 in data2){const _errs13 = errors;if(typeof key2 === \"string\"){if(!pattern5.test(key2)){const err10 = {instancePath:instancePath+\"/tagline\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key2};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}else {const err11 = {instancePath:instancePath+\"/tagline\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key2};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}var valid5 = _errs13 === errors;if(!valid5){const err12 = {instancePath:instancePath+\"/tagline\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key2},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}for(const key3 in data2){let data3 = data2[key3];if(typeof data3 === \"string\"){if(func2(data3) > 200){const err13 = {instancePath:instancePath+\"/tagline/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}if(func2(data3) < 1){const err14 = {instancePath:instancePath+\"/tagline/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}else {const err15 = {instancePath:instancePath+\"/tagline/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}}else {const err16 = {instancePath:instancePath+\"/tagline\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}if(data.bio !== undefined){let data4 = data.bio;if(data4 && typeof data4 == \"object\" && !Array.isArray(data4)){if(Object.keys(data4).length < 1){const err17 = {instancePath:instancePath+\"/bio\",schemaPath:\"#/$defs/LocalizedBody/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}for(const key4 in data4){const _errs21 = errors;if(typeof key4 === \"string\"){if(!pattern5.test(key4)){const err18 = {instancePath:instancePath+\"/bio\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key4};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}else {const err19 = {instancePath:instancePath+\"/bio\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key4};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}var valid8 = _errs21 === errors;if(!valid8){const err20 = {instancePath:instancePath+\"/bio\",schemaPath:\"#/$defs/LocalizedBody/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key4},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}for(const key5 in data4){let data5 = data4[key5];if(typeof data5 === \"string\"){if(func2(data5) > 5000){const err21 = {instancePath:instancePath+\"/bio/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 5000},message:\"must NOT have more than 5000 characters\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}if(func2(data5) < 1){const err22 = {instancePath:instancePath+\"/bio/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}else {const err23 = {instancePath:instancePath+\"/bio/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}}else {const err24 = {instancePath:instancePath+\"/bio\",schemaPath:\"#/$defs/LocalizedBody/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}if(data.avatar !== undefined){if(!(validate22(data.avatar, {instancePath:instancePath+\"/avatar\",parentData:data,parentDataProperty:\"avatar\",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate22.errors : vErrors.concat(validate22.errors);errors = vErrors.length;}}if(data.location !== undefined){if(!(validate24(data.location, {instancePath:instancePath+\"/location\",parentData:data,parentDataProperty:\"location\",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate24.errors : vErrors.concat(validate24.errors);errors = vErrors.length;}}}else {const err25 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}validate21.errors = vErrors;return errors === 0;}validate21.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema42 = {\"type\":\"object\",\"additionalProperties\":false,\"required\":[\"id\",\"type\",\"url\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"type\":{\"$ref\":\"#/$defs/LinkType\"},\"label\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"featured\":{\"type\":\"boolean\"},\"order\":{\"type\":\"integer\",\"minimum\":0},\"iconUrl\":{\"$ref\":\"#/$defs/Url\"}},\"allOf\":[{\"if\":{\"properties\":{\"type\":{\"const\":\"custom\"}},\"required\":[\"type\"]},\"then\":{\"properties\":{\"iconUrl\":{\"$ref\":\"#/$defs/Url\"}},\"required\":[\"iconUrl\"]}}]};const schema43 = {\"type\":\"string\",\"format\":\"uri\",\"maxLength\":2048};const schema44 = {\"type\":\"string\",\"minLength\":1,\"maxLength\":64,\"pattern\":\"^[a-z0-9][a-z0-9-]*$\",\"description\":\"URL-safe identifier (lowercase alphanumerics and hyphens, must start with alphanumeric).\"};const schema45 = {\"type\":\"string\",\"enum\":[\"website\",\"blog\",\"github\",\"gitlab\",\"linkedin\",\"x\",\"mastodon\",\"bluesky\",\"instagram\",\"youtube\",\"threads\",\"facebook\",\"email\",\"rss\",\"custom\"],\"description\":\"Identifies the kind of link. 'custom' requires iconUrl.\"};const formats2 = require(\"ajv-formats/dist/formats\").fullFormats.uri;const pattern12 = new RegExp(\"^[a-z0-9][a-z0-9-]*$\", \"u\");function validate27(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate27.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs2 = errors;let valid1 = true;const _errs3 = errors;if(data && typeof data == \"object\" && !Array.isArray(data)){let missing0;if((data.type === undefined) && (missing0 = \"type\")){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}else {if(data.type !== undefined){if(\"custom\" !== data.type){const err1 = {};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}}}var _valid0 = _errs3 === errors;errors = _errs2;if(vErrors !== null){if(_errs2){vErrors.length = _errs2;}else {vErrors = null;}}if(_valid0){const _errs5 = errors;if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.iconUrl === undefined){const err2 = {instancePath,schemaPath:\"#/allOf/0/then/required\",keyword:\"required\",params:{missingProperty: \"iconUrl\"},message:\"must have required property '\"+\"iconUrl\"+\"'\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.iconUrl !== undefined){let data1 = data.iconUrl;if(typeof data1 === \"string\"){if(func2(data1) > 2048){const err3 = {instancePath:instancePath+\"/iconUrl\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(!(formats2(data1))){const err4 = {instancePath:instancePath+\"/iconUrl\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}else {const err5 = {instancePath:instancePath+\"/iconUrl\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}}var _valid0 = _errs5 === errors;valid1 = _valid0;if(valid1){var props0 = {};props0.iconUrl = true;props0.type = true;}}if(!valid1){const err6 = {instancePath,schemaPath:\"#/allOf/0/if\",keyword:\"if\",params:{failingKeyword: \"then\"},message:\"must match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.id === undefined){const err7 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"id\"},message:\"must have required property '\"+\"id\"+\"'\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}if(data.type === undefined){const err8 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"type\"},message:\"must have required property '\"+\"type\"+\"'\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}if(data.url === undefined){const err9 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"url\"},message:\"must have required property '\"+\"url\"+\"'\"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}for(const key0 in data){if(!(((((((key0 === \"id\") || (key0 === \"type\")) || (key0 === \"label\")) || (key0 === \"url\")) || (key0 === \"featured\")) || (key0 === \"order\")) || (key0 === \"iconUrl\"))){const err10 = {instancePath,schemaPath:\"#/additionalProperties\",keyword:\"additionalProperties\",params:{additionalProperty: key0},message:\"must NOT have additional properties\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}if(data.id !== undefined){let data2 = data.id;if(typeof data2 === \"string\"){if(func2(data2) > 64){const err11 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}if(func2(data2) < 1){const err12 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}if(!pattern12.test(data2)){const err13 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}else {const err14 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}if(data.type !== undefined){let data3 = data.type;if(typeof data3 !== \"string\"){const err15 = {instancePath:instancePath+\"/type\",schemaPath:\"#/$defs/LinkType/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}if(!(((((((((((((((data3 === \"website\") || (data3 === \"blog\")) || (data3 === \"github\")) || (data3 === \"gitlab\")) || (data3 === \"linkedin\")) || (data3 === \"x\")) || (data3 === \"mastodon\")) || (data3 === \"bluesky\")) || (data3 === \"instagram\")) || (data3 === \"youtube\")) || (data3 === \"threads\")) || (data3 === \"facebook\")) || (data3 === \"email\")) || (data3 === \"rss\")) || (data3 === \"custom\"))){const err16 = {instancePath:instancePath+\"/type\",schemaPath:\"#/$defs/LinkType/enum\",keyword:\"enum\",params:{allowedValues: schema45.enum},message:\"must be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}if(data.label !== undefined){let data4 = data.label;if(data4 && typeof data4 == \"object\" && !Array.isArray(data4)){if(Object.keys(data4).length < 1){const err17 = {instancePath:instancePath+\"/label\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}for(const key1 in data4){const _errs19 = errors;if(typeof key1 === \"string\"){if(!pattern5.test(key1)){const err18 = {instancePath:instancePath+\"/label\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key1};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}else {const err19 = {instancePath:instancePath+\"/label\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key1};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}var valid9 = _errs19 === errors;if(!valid9){const err20 = {instancePath:instancePath+\"/label\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key1},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}for(const key2 in data4){let data5 = data4[key2];if(typeof data5 === \"string\"){if(func2(data5) > 200){const err21 = {instancePath:instancePath+\"/label/\" + key2.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}if(func2(data5) < 1){const err22 = {instancePath:instancePath+\"/label/\" + key2.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}else {const err23 = {instancePath:instancePath+\"/label/\" + key2.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}}else {const err24 = {instancePath:instancePath+\"/label\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}if(data.url !== undefined){let data6 = data.url;if(typeof data6 === \"string\"){if(func2(data6) > 2048){const err25 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}if(!(formats2(data6))){const err26 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}else {const err27 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}}if(data.featured !== undefined){if(typeof data.featured !== \"boolean\"){const err28 = {instancePath:instancePath+\"/featured\",schemaPath:\"#/properties/featured/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}}if(data.order !== undefined){let data8 = data.order;if(!(((typeof data8 == \"number\") && (!(data8 % 1) && !isNaN(data8))) && (isFinite(data8)))){const err29 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}if((typeof data8 == \"number\") && (isFinite(data8))){if(data8 < 0 || isNaN(data8)){const err30 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 0},message:\"must be >= 0\"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}}}if(data.iconUrl !== undefined){let data9 = data.iconUrl;if(typeof data9 === \"string\"){if(func2(data9) > 2048){const err31 = {instancePath:instancePath+\"/iconUrl\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}if(!(formats2(data9))){const err32 = {instancePath:instancePath+\"/iconUrl\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}else {const err33 = {instancePath:instancePath+\"/iconUrl\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}}else {const err34 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}validate27.errors = vErrors;return errors === 0;}validate27.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema49 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"organization\",\"role\",\"startDate\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"organization\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"role\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"startDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"endDate\":{\"anyOf\":[{\"$ref\":\"#/$defs/YearMonth\"},{\"type\":\"null\"}]},\"isCurrent\":{\"type\":\"boolean\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"location\":{\"$ref\":\"#/$defs/Address\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}};const schema54 = {\"type\":\"string\",\"pattern\":\"^[0-9]{4}-(0[1-9]|1[0-2])$\",\"description\":\"Year-month in 'YYYY-MM' format (Gregorian calendar).\"};const pattern18 = new RegExp(\"^[0-9]{4}-(0[1-9]|1[0-2])$\", \"u\");function validate29(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate29.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.id === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"id\"},message:\"must have required property '\"+\"id\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.organization === undefined){const err1 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"organization\"},message:\"must have required property '\"+\"organization\"+\"'\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.role === undefined){const err2 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"role\"},message:\"must have required property '\"+\"role\"+\"'\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.startDate === undefined){const err3 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"startDate\"},message:\"must have required property '\"+\"startDate\"+\"'\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data.id !== undefined){let data0 = data.id;if(typeof data0 === \"string\"){if(func2(data0) > 64){const err4 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(func2(data0) < 1){const err5 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(!pattern12.test(data0)){const err6 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}else {const err7 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}if(data.organization !== undefined){let data1 = data.organization;if(data1 && typeof data1 == \"object\" && !Array.isArray(data1)){if(Object.keys(data1).length < 1){const err8 = {instancePath:instancePath+\"/organization\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}for(const key0 in data1){const _errs8 = errors;if(typeof key0 === \"string\"){if(!pattern5.test(key0)){const err9 = {instancePath:instancePath+\"/organization\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key0};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}else {const err10 = {instancePath:instancePath+\"/organization\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key0};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}var valid3 = _errs8 === errors;if(!valid3){const err11 = {instancePath:instancePath+\"/organization\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key0},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}for(const key1 in data1){let data2 = data1[key1];if(typeof data2 === \"string\"){if(func2(data2) > 200){const err12 = {instancePath:instancePath+\"/organization/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}if(func2(data2) < 1){const err13 = {instancePath:instancePath+\"/organization/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}else {const err14 = {instancePath:instancePath+\"/organization/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}}else {const err15 = {instancePath:instancePath+\"/organization\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}if(data.role !== undefined){let data3 = data.role;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if(Object.keys(data3).length < 1){const err16 = {instancePath:instancePath+\"/role\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}for(const key2 in data3){const _errs16 = errors;if(typeof key2 === \"string\"){if(!pattern5.test(key2)){const err17 = {instancePath:instancePath+\"/role\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key2};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}else {const err18 = {instancePath:instancePath+\"/role\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key2};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}var valid6 = _errs16 === errors;if(!valid6){const err19 = {instancePath:instancePath+\"/role\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key2},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}for(const key3 in data3){let data4 = data3[key3];if(typeof data4 === \"string\"){if(func2(data4) > 200){const err20 = {instancePath:instancePath+\"/role/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}if(func2(data4) < 1){const err21 = {instancePath:instancePath+\"/role/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}else {const err22 = {instancePath:instancePath+\"/role/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}}else {const err23 = {instancePath:instancePath+\"/role\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}if(data.description !== undefined){let data5 = data.description;if(data5 && typeof data5 == \"object\" && !Array.isArray(data5)){if(Object.keys(data5).length < 1){const err24 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}for(const key4 in data5){const _errs24 = errors;if(typeof key4 === \"string\"){if(!pattern5.test(key4)){const err25 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key4};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}}else {const err26 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key4};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}var valid9 = _errs24 === errors;if(!valid9){const err27 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key4},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}}for(const key5 in data5){let data6 = data5[key5];if(typeof data6 === \"string\"){if(func2(data6) > 5000){const err28 = {instancePath:instancePath+\"/description/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 5000},message:\"must NOT have more than 5000 characters\"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}if(func2(data6) < 1){const err29 = {instancePath:instancePath+\"/description/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}}else {const err30 = {instancePath:instancePath+\"/description/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}}}else {const err31 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}}if(data.startDate !== undefined){let data7 = data.startDate;if(typeof data7 === \"string\"){if(!pattern18.test(data7)){const err32 = {instancePath:instancePath+\"/startDate\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}else {const err33 = {instancePath:instancePath+\"/startDate\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}if(data.endDate !== undefined){let data8 = data.endDate;const _errs33 = errors;let valid12 = false;const _errs34 = errors;if(typeof data8 === \"string\"){if(!pattern18.test(data8)){const err34 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}}else {const err35 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}var _valid0 = _errs34 === errors;valid12 = valid12 || _valid0;const _errs37 = errors;if(data8 !== null){const err36 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/properties/endDate/anyOf/1/type\",keyword:\"type\",params:{type: \"null\"},message:\"must be null\"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}var _valid0 = _errs37 === errors;valid12 = valid12 || _valid0;if(!valid12){const err37 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/properties/endDate/anyOf\",keyword:\"anyOf\",params:{},message:\"must match a schema in anyOf\"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}else {errors = _errs33;if(vErrors !== null){if(_errs33){vErrors.length = _errs33;}else {vErrors = null;}}}}if(data.isCurrent !== undefined){if(typeof data.isCurrent !== \"boolean\"){const err38 = {instancePath:instancePath+\"/isCurrent\",schemaPath:\"#/properties/isCurrent/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}}if(data.url !== undefined){let data10 = data.url;if(typeof data10 === \"string\"){if(func2(data10) > 2048){const err39 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}if(!(formats2(data10))){const err40 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}}else {const err41 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;}}if(data.location !== undefined){if(!(validate24(data.location, {instancePath:instancePath+\"/location\",parentData:data,parentDataProperty:\"location\",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate24.errors : vErrors.concat(validate24.errors);errors = vErrors.length;}}if(data.order !== undefined){let data12 = data.order;if(!(((typeof data12 == \"number\") && (!(data12 % 1) && !isNaN(data12))) && (isFinite(data12)))){const err42 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"};if(vErrors === null){vErrors = [err42];}else {vErrors.push(err42);}errors++;}if((typeof data12 == \"number\") && (isFinite(data12))){if(data12 < 0 || isNaN(data12)){const err43 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 0},message:\"must be >= 0\"};if(vErrors === null){vErrors = [err43];}else {vErrors.push(err43);}errors++;}}}}else {const err44 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err44];}else {vErrors.push(err44);}errors++;}validate29.errors = vErrors;return errors === 0;}validate29.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema57 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"title\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"title\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"tags\":{\"type\":\"array\",\"maxItems\":30,\"items\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":50}},\"relatedCareerId\":{\"$ref\":\"#/$defs/Slug\"},\"startDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"endDate\":{\"anyOf\":[{\"$ref\":\"#/$defs/YearMonth\"},{\"type\":\"null\"}]},\"highlighted\":{\"type\":\"boolean\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}};function validate32(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate32.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.id === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"id\"},message:\"must have required property '\"+\"id\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.title === undefined){const err1 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"title\"},message:\"must have required property '\"+\"title\"+\"'\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.id !== undefined){let data0 = data.id;if(typeof data0 === \"string\"){if(func2(data0) > 64){const err2 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(func2(data0) < 1){const err3 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(!pattern12.test(data0)){const err4 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}else {const err5 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}if(data.title !== undefined){let data1 = data.title;if(data1 && typeof data1 == \"object\" && !Array.isArray(data1)){if(Object.keys(data1).length < 1){const err6 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}for(const key0 in data1){const _errs8 = errors;if(typeof key0 === \"string\"){if(!pattern5.test(key0)){const err7 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key0};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}else {const err8 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key0};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}var valid3 = _errs8 === errors;if(!valid3){const err9 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key0},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}for(const key1 in data1){let data2 = data1[key1];if(typeof data2 === \"string\"){if(func2(data2) > 200){const err10 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}if(func2(data2) < 1){const err11 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}else {const err12 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}}else {const err13 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}if(data.description !== undefined){let data3 = data.description;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if(Object.keys(data3).length < 1){const err14 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}for(const key2 in data3){const _errs16 = errors;if(typeof key2 === \"string\"){if(!pattern5.test(key2)){const err15 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key2};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}else {const err16 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key2};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}var valid6 = _errs16 === errors;if(!valid6){const err17 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key2},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}for(const key3 in data3){let data4 = data3[key3];if(typeof data4 === \"string\"){if(func2(data4) > 5000){const err18 = {instancePath:instancePath+\"/description/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 5000},message:\"must NOT have more than 5000 characters\"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}if(func2(data4) < 1){const err19 = {instancePath:instancePath+\"/description/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}else {const err20 = {instancePath:instancePath+\"/description/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}}else {const err21 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}if(data.url !== undefined){let data5 = data.url;if(typeof data5 === \"string\"){if(func2(data5) > 2048){const err22 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}if(!(formats2(data5))){const err23 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}else {const err24 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}if(data.tags !== undefined){let data6 = data.tags;if(Array.isArray(data6)){if(data6.length > 30){const err25 = {instancePath:instancePath+\"/tags\",schemaPath:\"#/properties/tags/maxItems\",keyword:\"maxItems\",params:{limit: 30},message:\"must NOT have more than 30 items\"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}const len0 = data6.length;for(let i0=0; i0<len0; i0++){let data7 = data6[i0];if(typeof data7 === \"string\"){if(func2(data7) > 50){const err26 = {instancePath:instancePath+\"/tags/\" + i0,schemaPath:\"#/properties/tags/items/maxLength\",keyword:\"maxLength\",params:{limit: 50},message:\"must NOT have more than 50 characters\"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}if(func2(data7) < 1){const err27 = {instancePath:instancePath+\"/tags/\" + i0,schemaPath:\"#/properties/tags/items/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}}else {const err28 = {instancePath:instancePath+\"/tags/\" + i0,schemaPath:\"#/properties/tags/items/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}}}else {const err29 = {instancePath:instancePath+\"/tags\",schemaPath:\"#/properties/tags/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}}if(data.relatedCareerId !== undefined){let data8 = data.relatedCareerId;if(typeof data8 === \"string\"){if(func2(data8) > 64){const err30 = {instancePath:instancePath+\"/relatedCareerId\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}if(func2(data8) < 1){const err31 = {instancePath:instancePath+\"/relatedCareerId\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}if(!pattern12.test(data8)){const err32 = {instancePath:instancePath+\"/relatedCareerId\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}else {const err33 = {instancePath:instancePath+\"/relatedCareerId\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}if(data.startDate !== undefined){let data9 = data.startDate;if(typeof data9 === \"string\"){if(!pattern18.test(data9)){const err34 = {instancePath:instancePath+\"/startDate\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}}else {const err35 = {instancePath:instancePath+\"/startDate\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}}if(data.endDate !== undefined){let data10 = data.endDate;const _errs35 = errors;let valid13 = false;const _errs36 = errors;if(typeof data10 === \"string\"){if(!pattern18.test(data10)){const err36 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}}else {const err37 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}var _valid0 = _errs36 === errors;valid13 = valid13 || _valid0;const _errs39 = errors;if(data10 !== null){const err38 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/properties/endDate/anyOf/1/type\",keyword:\"type\",params:{type: \"null\"},message:\"must be null\"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}var _valid0 = _errs39 === errors;valid13 = valid13 || _valid0;if(!valid13){const err39 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/properties/endDate/anyOf\",keyword:\"anyOf\",params:{},message:\"must match a schema in anyOf\"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}else {errors = _errs35;if(vErrors !== null){if(_errs35){vErrors.length = _errs35;}else {vErrors = null;}}}}if(data.highlighted !== undefined){if(typeof data.highlighted !== \"boolean\"){const err40 = {instancePath:instancePath+\"/highlighted\",schemaPath:\"#/properties/highlighted/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}}if(data.order !== undefined){let data12 = data.order;if(!(((typeof data12 == \"number\") && (!(data12 % 1) && !isNaN(data12))) && (isFinite(data12)))){const err41 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;}if((typeof data12 == \"number\") && (isFinite(data12))){if(data12 < 0 || isNaN(data12)){const err42 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 0},message:\"must be >= 0\"};if(vErrors === null){vErrors = [err42];}else {vErrors.push(err42);}errors++;}}}}else {const err43 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err43];}else {vErrors.push(err43);}errors++;}validate32.errors = vErrors;return errors === 0;}validate32.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema65 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"label\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"label\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100},\"category\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":64,\"description\":\"Recommended values (extensible): programming, design, business, communication, language, music, art, sports, other.\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}};function validate34(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate34.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.id === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"id\"},message:\"must have required property '\"+\"id\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.label === undefined){const err1 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"label\"},message:\"must have required property '\"+\"label\"+\"'\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.id !== undefined){let data0 = data.id;if(typeof data0 === \"string\"){if(func2(data0) > 64){const err2 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(func2(data0) < 1){const err3 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(!pattern12.test(data0)){const err4 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}else {const err5 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}if(data.label !== undefined){let data1 = data.label;if(typeof data1 === \"string\"){if(func2(data1) > 100){const err6 = {instancePath:instancePath+\"/label\",schemaPath:\"#/properties/label/maxLength\",keyword:\"maxLength\",params:{limit: 100},message:\"must NOT have more than 100 characters\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}if(func2(data1) < 1){const err7 = {instancePath:instancePath+\"/label\",schemaPath:\"#/properties/label/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}else {const err8 = {instancePath:instancePath+\"/label\",schemaPath:\"#/properties/label/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}if(data.category !== undefined){let data2 = data.category;if(typeof data2 === \"string\"){if(func2(data2) > 64){const err9 = {instancePath:instancePath+\"/category\",schemaPath:\"#/properties/category/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}if(func2(data2) < 1){const err10 = {instancePath:instancePath+\"/category\",schemaPath:\"#/properties/category/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}else {const err11 = {instancePath:instancePath+\"/category\",schemaPath:\"#/properties/category/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}if(data.order !== undefined){let data3 = data.order;if(!(((typeof data3 == \"number\") && (!(data3 % 1) && !isNaN(data3))) && (isFinite(data3)))){const err12 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}if((typeof data3 == \"number\") && (isFinite(data3))){if(data3 < 0 || isNaN(data3)){const err13 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 0},message:\"must be >= 0\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}}}else {const err14 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}validate34.errors = vErrors;return errors === 0;}validate34.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema67 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"title\",\"issuingOrganization\",\"issueDate\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"title\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"issuingOrganization\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"issueDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"expirationDate\":{\"anyOf\":[{\"$ref\":\"#/$defs/YearMonth\"},{\"type\":\"null\"}],\"description\":\"null = explicitly 'no expiration'. Omit if unknown/unstated.\"},\"credentialId\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100,\"description\":\"License or certificate number. Public exposure controlled by meta.privacy.hideCredentialIds.\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}};function validate36(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate36.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.id === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"id\"},message:\"must have required property '\"+\"id\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.title === undefined){const err1 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"title\"},message:\"must have required property '\"+\"title\"+\"'\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.issuingOrganization === undefined){const err2 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"issuingOrganization\"},message:\"must have required property '\"+\"issuingOrganization\"+\"'\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.issueDate === undefined){const err3 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"issueDate\"},message:\"must have required property '\"+\"issueDate\"+\"'\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data.id !== undefined){let data0 = data.id;if(typeof data0 === \"string\"){if(func2(data0) > 64){const err4 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(func2(data0) < 1){const err5 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(!pattern12.test(data0)){const err6 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}else {const err7 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}if(data.title !== undefined){let data1 = data.title;if(data1 && typeof data1 == \"object\" && !Array.isArray(data1)){if(Object.keys(data1).length < 1){const err8 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}for(const key0 in data1){const _errs8 = errors;if(typeof key0 === \"string\"){if(!pattern5.test(key0)){const err9 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key0};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}else {const err10 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key0};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}var valid3 = _errs8 === errors;if(!valid3){const err11 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key0},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}for(const key1 in data1){let data2 = data1[key1];if(typeof data2 === \"string\"){if(func2(data2) > 200){const err12 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}if(func2(data2) < 1){const err13 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}else {const err14 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}}else {const err15 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}if(data.issuingOrganization !== undefined){let data3 = data.issuingOrganization;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if(Object.keys(data3).length < 1){const err16 = {instancePath:instancePath+\"/issuingOrganization\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}for(const key2 in data3){const _errs16 = errors;if(typeof key2 === \"string\"){if(!pattern5.test(key2)){const err17 = {instancePath:instancePath+\"/issuingOrganization\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key2};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}else {const err18 = {instancePath:instancePath+\"/issuingOrganization\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key2};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}var valid6 = _errs16 === errors;if(!valid6){const err19 = {instancePath:instancePath+\"/issuingOrganization\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key2},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}for(const key3 in data3){let data4 = data3[key3];if(typeof data4 === \"string\"){if(func2(data4) > 200){const err20 = {instancePath:instancePath+\"/issuingOrganization/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}if(func2(data4) < 1){const err21 = {instancePath:instancePath+\"/issuingOrganization/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}else {const err22 = {instancePath:instancePath+\"/issuingOrganization/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}}else {const err23 = {instancePath:instancePath+\"/issuingOrganization\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}if(data.issueDate !== undefined){let data5 = data.issueDate;if(typeof data5 === \"string\"){if(!pattern18.test(data5)){const err24 = {instancePath:instancePath+\"/issueDate\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}else {const err25 = {instancePath:instancePath+\"/issueDate\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}}if(data.expirationDate !== undefined){let data6 = data.expirationDate;const _errs25 = errors;let valid9 = false;const _errs26 = errors;if(typeof data6 === \"string\"){if(!pattern18.test(data6)){const err26 = {instancePath:instancePath+\"/expirationDate\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}else {const err27 = {instancePath:instancePath+\"/expirationDate\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}var _valid0 = _errs26 === errors;valid9 = valid9 || _valid0;const _errs29 = errors;if(data6 !== null){const err28 = {instancePath:instancePath+\"/expirationDate\",schemaPath:\"#/properties/expirationDate/anyOf/1/type\",keyword:\"type\",params:{type: \"null\"},message:\"must be null\"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}var _valid0 = _errs29 === errors;valid9 = valid9 || _valid0;if(!valid9){const err29 = {instancePath:instancePath+\"/expirationDate\",schemaPath:\"#/properties/expirationDate/anyOf\",keyword:\"anyOf\",params:{},message:\"must match a schema in anyOf\"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}else {errors = _errs25;if(vErrors !== null){if(_errs25){vErrors.length = _errs25;}else {vErrors = null;}}}}if(data.credentialId !== undefined){let data7 = data.credentialId;if(typeof data7 === \"string\"){if(func2(data7) > 100){const err30 = {instancePath:instancePath+\"/credentialId\",schemaPath:\"#/properties/credentialId/maxLength\",keyword:\"maxLength\",params:{limit: 100},message:\"must NOT have more than 100 characters\"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}if(func2(data7) < 1){const err31 = {instancePath:instancePath+\"/credentialId\",schemaPath:\"#/properties/credentialId/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}}else {const err32 = {instancePath:instancePath+\"/credentialId\",schemaPath:\"#/properties/credentialId/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}if(data.url !== undefined){let data8 = data.url;if(typeof data8 === \"string\"){if(func2(data8) > 2048){const err33 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}if(!(formats2(data8))){const err34 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}}else {const err35 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}}if(data.order !== undefined){let data9 = data.order;if(!(((typeof data9 == \"number\") && (!(data9 % 1) && !isNaN(data9))) && (isFinite(data9)))){const err36 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}if((typeof data9 == \"number\") && (isFinite(data9))){if(data9 < 0 || isNaN(data9)){const err37 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 0},message:\"must be >= 0\"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}}}}else {const err38 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}validate36.errors = vErrors;return errors === 0;}validate36.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema74 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"organization\",\"startDate\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"organization\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"role\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"startDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"endDate\":{\"anyOf\":[{\"$ref\":\"#/$defs/YearMonth\"},{\"type\":\"null\"}],\"description\":\"null = ongoing. Omit if unknown.\"},\"isCurrent\":{\"type\":\"boolean\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}};function validate38(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate38.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.id === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"id\"},message:\"must have required property '\"+\"id\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.organization === undefined){const err1 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"organization\"},message:\"must have required property '\"+\"organization\"+\"'\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.startDate === undefined){const err2 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"startDate\"},message:\"must have required property '\"+\"startDate\"+\"'\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.id !== undefined){let data0 = data.id;if(typeof data0 === \"string\"){if(func2(data0) > 64){const err3 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(func2(data0) < 1){const err4 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(!pattern12.test(data0)){const err5 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}else {const err6 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}if(data.organization !== undefined){let data1 = data.organization;if(data1 && typeof data1 == \"object\" && !Array.isArray(data1)){if(Object.keys(data1).length < 1){const err7 = {instancePath:instancePath+\"/organization\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}for(const key0 in data1){const _errs8 = errors;if(typeof key0 === \"string\"){if(!pattern5.test(key0)){const err8 = {instancePath:instancePath+\"/organization\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key0};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}else {const err9 = {instancePath:instancePath+\"/organization\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key0};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}var valid3 = _errs8 === errors;if(!valid3){const err10 = {instancePath:instancePath+\"/organization\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key0},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}for(const key1 in data1){let data2 = data1[key1];if(typeof data2 === \"string\"){if(func2(data2) > 200){const err11 = {instancePath:instancePath+\"/organization/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}if(func2(data2) < 1){const err12 = {instancePath:instancePath+\"/organization/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}else {const err13 = {instancePath:instancePath+\"/organization/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}}else {const err14 = {instancePath:instancePath+\"/organization\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}if(data.role !== undefined){let data3 = data.role;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if(Object.keys(data3).length < 1){const err15 = {instancePath:instancePath+\"/role\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}for(const key2 in data3){const _errs16 = errors;if(typeof key2 === \"string\"){if(!pattern5.test(key2)){const err16 = {instancePath:instancePath+\"/role\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key2};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}else {const err17 = {instancePath:instancePath+\"/role\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key2};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}var valid6 = _errs16 === errors;if(!valid6){const err18 = {instancePath:instancePath+\"/role\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key2},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}for(const key3 in data3){let data4 = data3[key3];if(typeof data4 === \"string\"){if(func2(data4) > 200){const err19 = {instancePath:instancePath+\"/role/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}if(func2(data4) < 1){const err20 = {instancePath:instancePath+\"/role/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}else {const err21 = {instancePath:instancePath+\"/role/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}}else {const err22 = {instancePath:instancePath+\"/role\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}if(data.description !== undefined){let data5 = data.description;if(data5 && typeof data5 == \"object\" && !Array.isArray(data5)){if(Object.keys(data5).length < 1){const err23 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}for(const key4 in data5){const _errs24 = errors;if(typeof key4 === \"string\"){if(!pattern5.test(key4)){const err24 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key4};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}else {const err25 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key4};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}var valid9 = _errs24 === errors;if(!valid9){const err26 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key4},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}for(const key5 in data5){let data6 = data5[key5];if(typeof data6 === \"string\"){if(func2(data6) > 5000){const err27 = {instancePath:instancePath+\"/description/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 5000},message:\"must NOT have more than 5000 characters\"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}if(func2(data6) < 1){const err28 = {instancePath:instancePath+\"/description/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}}else {const err29 = {instancePath:instancePath+\"/description/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}}}else {const err30 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}}if(data.startDate !== undefined){let data7 = data.startDate;if(typeof data7 === \"string\"){if(!pattern18.test(data7)){const err31 = {instancePath:instancePath+\"/startDate\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}}else {const err32 = {instancePath:instancePath+\"/startDate\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}if(data.endDate !== undefined){let data8 = data.endDate;const _errs33 = errors;let valid12 = false;const _errs34 = errors;if(typeof data8 === \"string\"){if(!pattern18.test(data8)){const err33 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}else {const err34 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}var _valid0 = _errs34 === errors;valid12 = valid12 || _valid0;const _errs37 = errors;if(data8 !== null){const err35 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/properties/endDate/anyOf/1/type\",keyword:\"type\",params:{type: \"null\"},message:\"must be null\"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}var _valid0 = _errs37 === errors;valid12 = valid12 || _valid0;if(!valid12){const err36 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/properties/endDate/anyOf\",keyword:\"anyOf\",params:{},message:\"must match a schema in anyOf\"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}else {errors = _errs33;if(vErrors !== null){if(_errs33){vErrors.length = _errs33;}else {vErrors = null;}}}}if(data.isCurrent !== undefined){if(typeof data.isCurrent !== \"boolean\"){const err37 = {instancePath:instancePath+\"/isCurrent\",schemaPath:\"#/properties/isCurrent/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}}if(data.url !== undefined){let data10 = data.url;if(typeof data10 === \"string\"){if(func2(data10) > 2048){const err38 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}if(!(formats2(data10))){const err39 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}}else {const err40 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}}if(data.order !== undefined){let data11 = data.order;if(!(((typeof data11 == \"number\") && (!(data11 % 1) && !isNaN(data11))) && (isFinite(data11)))){const err41 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;}if((typeof data11 == \"number\") && (isFinite(data11))){if(data11 < 0 || isNaN(data11)){const err42 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 0},message:\"must be >= 0\"};if(vErrors === null){vErrors = [err42];}else {vErrors.push(err42);}errors++;}}}}else {const err43 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err43];}else {vErrors.push(err43);}errors++;}validate38.errors = vErrors;return errors === 0;}validate38.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema82 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"organization\",\"role\",\"startDate\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"organization\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"role\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"cause\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"startDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"endDate\":{\"anyOf\":[{\"$ref\":\"#/$defs/YearMonth\"},{\"type\":\"null\"}]},\"isCurrent\":{\"type\":\"boolean\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}};function validate40(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate40.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.id === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"id\"},message:\"must have required property '\"+\"id\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.organization === undefined){const err1 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"organization\"},message:\"must have required property '\"+\"organization\"+\"'\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.role === undefined){const err2 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"role\"},message:\"must have required property '\"+\"role\"+\"'\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.startDate === undefined){const err3 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"startDate\"},message:\"must have required property '\"+\"startDate\"+\"'\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data.id !== undefined){let data0 = data.id;if(typeof data0 === \"string\"){if(func2(data0) > 64){const err4 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(func2(data0) < 1){const err5 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(!pattern12.test(data0)){const err6 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}else {const err7 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}if(data.organization !== undefined){let data1 = data.organization;if(data1 && typeof data1 == \"object\" && !Array.isArray(data1)){if(Object.keys(data1).length < 1){const err8 = {instancePath:instancePath+\"/organization\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}for(const key0 in data1){const _errs8 = errors;if(typeof key0 === \"string\"){if(!pattern5.test(key0)){const err9 = {instancePath:instancePath+\"/organization\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key0};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}else {const err10 = {instancePath:instancePath+\"/organization\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key0};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}var valid3 = _errs8 === errors;if(!valid3){const err11 = {instancePath:instancePath+\"/organization\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key0},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}for(const key1 in data1){let data2 = data1[key1];if(typeof data2 === \"string\"){if(func2(data2) > 200){const err12 = {instancePath:instancePath+\"/organization/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}if(func2(data2) < 1){const err13 = {instancePath:instancePath+\"/organization/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}else {const err14 = {instancePath:instancePath+\"/organization/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}}else {const err15 = {instancePath:instancePath+\"/organization\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}if(data.role !== undefined){let data3 = data.role;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if(Object.keys(data3).length < 1){const err16 = {instancePath:instancePath+\"/role\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}for(const key2 in data3){const _errs16 = errors;if(typeof key2 === \"string\"){if(!pattern5.test(key2)){const err17 = {instancePath:instancePath+\"/role\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key2};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}else {const err18 = {instancePath:instancePath+\"/role\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key2};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}var valid6 = _errs16 === errors;if(!valid6){const err19 = {instancePath:instancePath+\"/role\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key2},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}for(const key3 in data3){let data4 = data3[key3];if(typeof data4 === \"string\"){if(func2(data4) > 200){const err20 = {instancePath:instancePath+\"/role/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}if(func2(data4) < 1){const err21 = {instancePath:instancePath+\"/role/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}else {const err22 = {instancePath:instancePath+\"/role/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}}else {const err23 = {instancePath:instancePath+\"/role\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}if(data.cause !== undefined){let data5 = data.cause;if(data5 && typeof data5 == \"object\" && !Array.isArray(data5)){if(Object.keys(data5).length < 1){const err24 = {instancePath:instancePath+\"/cause\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}for(const key4 in data5){const _errs24 = errors;if(typeof key4 === \"string\"){if(!pattern5.test(key4)){const err25 = {instancePath:instancePath+\"/cause\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key4};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}}else {const err26 = {instancePath:instancePath+\"/cause\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key4};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}var valid9 = _errs24 === errors;if(!valid9){const err27 = {instancePath:instancePath+\"/cause\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key4},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}}for(const key5 in data5){let data6 = data5[key5];if(typeof data6 === \"string\"){if(func2(data6) > 200){const err28 = {instancePath:instancePath+\"/cause/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}if(func2(data6) < 1){const err29 = {instancePath:instancePath+\"/cause/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}}else {const err30 = {instancePath:instancePath+\"/cause/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}}}else {const err31 = {instancePath:instancePath+\"/cause\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}}if(data.description !== undefined){let data7 = data.description;if(data7 && typeof data7 == \"object\" && !Array.isArray(data7)){if(Object.keys(data7).length < 1){const err32 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}for(const key6 in data7){const _errs32 = errors;if(typeof key6 === \"string\"){if(!pattern5.test(key6)){const err33 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key6};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}else {const err34 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key6};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}var valid12 = _errs32 === errors;if(!valid12){const err35 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key6},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}}for(const key7 in data7){let data8 = data7[key7];if(typeof data8 === \"string\"){if(func2(data8) > 5000){const err36 = {instancePath:instancePath+\"/description/\" + key7.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 5000},message:\"must NOT have more than 5000 characters\"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}if(func2(data8) < 1){const err37 = {instancePath:instancePath+\"/description/\" + key7.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}}else {const err38 = {instancePath:instancePath+\"/description/\" + key7.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}}}else {const err39 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}}if(data.startDate !== undefined){let data9 = data.startDate;if(typeof data9 === \"string\"){if(!pattern18.test(data9)){const err40 = {instancePath:instancePath+\"/startDate\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}}else {const err41 = {instancePath:instancePath+\"/startDate\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;}}if(data.endDate !== undefined){let data10 = data.endDate;const _errs41 = errors;let valid15 = false;const _errs42 = errors;if(typeof data10 === \"string\"){if(!pattern18.test(data10)){const err42 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err42];}else {vErrors.push(err42);}errors++;}}else {const err43 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err43];}else {vErrors.push(err43);}errors++;}var _valid0 = _errs42 === errors;valid15 = valid15 || _valid0;const _errs45 = errors;if(data10 !== null){const err44 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/properties/endDate/anyOf/1/type\",keyword:\"type\",params:{type: \"null\"},message:\"must be null\"};if(vErrors === null){vErrors = [err44];}else {vErrors.push(err44);}errors++;}var _valid0 = _errs45 === errors;valid15 = valid15 || _valid0;if(!valid15){const err45 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/properties/endDate/anyOf\",keyword:\"anyOf\",params:{},message:\"must match a schema in anyOf\"};if(vErrors === null){vErrors = [err45];}else {vErrors.push(err45);}errors++;}else {errors = _errs41;if(vErrors !== null){if(_errs41){vErrors.length = _errs41;}else {vErrors = null;}}}}if(data.isCurrent !== undefined){if(typeof data.isCurrent !== \"boolean\"){const err46 = {instancePath:instancePath+\"/isCurrent\",schemaPath:\"#/properties/isCurrent/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"};if(vErrors === null){vErrors = [err46];}else {vErrors.push(err46);}errors++;}}if(data.url !== undefined){let data12 = data.url;if(typeof data12 === \"string\"){if(func2(data12) > 2048){const err47 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err47];}else {vErrors.push(err47);}errors++;}if(!(formats2(data12))){const err48 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err48];}else {vErrors.push(err48);}errors++;}}else {const err49 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err49];}else {vErrors.push(err49);}errors++;}}if(data.order !== undefined){let data13 = data.order;if(!(((typeof data13 == \"number\") && (!(data13 % 1) && !isNaN(data13))) && (isFinite(data13)))){const err50 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"};if(vErrors === null){vErrors = [err50];}else {vErrors.push(err50);}errors++;}if((typeof data13 == \"number\") && (isFinite(data13))){if(data13 < 0 || isNaN(data13)){const err51 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 0},message:\"must be >= 0\"};if(vErrors === null){vErrors = [err51];}else {vErrors.push(err51);}errors++;}}}}else {const err52 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err52];}else {vErrors.push(err52);}errors++;}validate40.errors = vErrors;return errors === 0;}validate40.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema91 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"title\",\"issuer\",\"date\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"title\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"issuer\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"date\":{\"$ref\":\"#/$defs/YearMonth\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}};function validate42(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate42.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.id === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"id\"},message:\"must have required property '\"+\"id\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.title === undefined){const err1 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"title\"},message:\"must have required property '\"+\"title\"+\"'\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.issuer === undefined){const err2 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"issuer\"},message:\"must have required property '\"+\"issuer\"+\"'\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.date === undefined){const err3 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"date\"},message:\"must have required property '\"+\"date\"+\"'\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data.id !== undefined){let data0 = data.id;if(typeof data0 === \"string\"){if(func2(data0) > 64){const err4 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(func2(data0) < 1){const err5 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(!pattern12.test(data0)){const err6 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}else {const err7 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}if(data.title !== undefined){let data1 = data.title;if(data1 && typeof data1 == \"object\" && !Array.isArray(data1)){if(Object.keys(data1).length < 1){const err8 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}for(const key0 in data1){const _errs8 = errors;if(typeof key0 === \"string\"){if(!pattern5.test(key0)){const err9 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key0};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}else {const err10 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key0};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}var valid3 = _errs8 === errors;if(!valid3){const err11 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key0},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}for(const key1 in data1){let data2 = data1[key1];if(typeof data2 === \"string\"){if(func2(data2) > 200){const err12 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}if(func2(data2) < 1){const err13 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}else {const err14 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}}else {const err15 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}if(data.issuer !== undefined){let data3 = data.issuer;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if(Object.keys(data3).length < 1){const err16 = {instancePath:instancePath+\"/issuer\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}for(const key2 in data3){const _errs16 = errors;if(typeof key2 === \"string\"){if(!pattern5.test(key2)){const err17 = {instancePath:instancePath+\"/issuer\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key2};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}else {const err18 = {instancePath:instancePath+\"/issuer\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key2};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}var valid6 = _errs16 === errors;if(!valid6){const err19 = {instancePath:instancePath+\"/issuer\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key2},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}for(const key3 in data3){let data4 = data3[key3];if(typeof data4 === \"string\"){if(func2(data4) > 200){const err20 = {instancePath:instancePath+\"/issuer/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}if(func2(data4) < 1){const err21 = {instancePath:instancePath+\"/issuer/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}else {const err22 = {instancePath:instancePath+\"/issuer/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}}else {const err23 = {instancePath:instancePath+\"/issuer\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}if(data.description !== undefined){let data5 = data.description;if(data5 && typeof data5 == \"object\" && !Array.isArray(data5)){if(Object.keys(data5).length < 1){const err24 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}for(const key4 in data5){const _errs24 = errors;if(typeof key4 === \"string\"){if(!pattern5.test(key4)){const err25 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key4};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}}else {const err26 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key4};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}var valid9 = _errs24 === errors;if(!valid9){const err27 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key4},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}}for(const key5 in data5){let data6 = data5[key5];if(typeof data6 === \"string\"){if(func2(data6) > 5000){const err28 = {instancePath:instancePath+\"/description/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 5000},message:\"must NOT have more than 5000 characters\"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}if(func2(data6) < 1){const err29 = {instancePath:instancePath+\"/description/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}}else {const err30 = {instancePath:instancePath+\"/description/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}}}else {const err31 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}}if(data.date !== undefined){let data7 = data.date;if(typeof data7 === \"string\"){if(!pattern18.test(data7)){const err32 = {instancePath:instancePath+\"/date\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}else {const err33 = {instancePath:instancePath+\"/date\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}if(data.url !== undefined){let data8 = data.url;if(typeof data8 === \"string\"){if(func2(data8) > 2048){const err34 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}if(!(formats2(data8))){const err35 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}}else {const err36 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}}if(data.order !== undefined){let data9 = data.order;if(!(((typeof data9 == \"number\") && (!(data9 % 1) && !isNaN(data9))) && (isFinite(data9)))){const err37 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}if((typeof data9 == \"number\") && (isFinite(data9))){if(data9 < 0 || isNaN(data9)){const err38 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 0},message:\"must be >= 0\"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}}}}else {const err39 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}validate42.errors = vErrors;return errors === 0;}validate42.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema98 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"institution\",\"startDate\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"institution\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"degree\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"fieldOfStudy\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"grade\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":50,\"description\":\"Free-form grade / class / GPA. Public exposure controlled by meta.privacy.hideEducationGrades.\"},\"startDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"endDate\":{\"anyOf\":[{\"$ref\":\"#/$defs/YearMonth\"},{\"type\":\"null\"}],\"description\":\"null = currently enrolled.\"},\"isCurrent\":{\"type\":\"boolean\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}};function validate44(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate44.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.id === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"id\"},message:\"must have required property '\"+\"id\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.institution === undefined){const err1 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"institution\"},message:\"must have required property '\"+\"institution\"+\"'\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.startDate === undefined){const err2 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"startDate\"},message:\"must have required property '\"+\"startDate\"+\"'\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.id !== undefined){let data0 = data.id;if(typeof data0 === \"string\"){if(func2(data0) > 64){const err3 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(func2(data0) < 1){const err4 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(!pattern12.test(data0)){const err5 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}else {const err6 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}if(data.institution !== undefined){let data1 = data.institution;if(data1 && typeof data1 == \"object\" && !Array.isArray(data1)){if(Object.keys(data1).length < 1){const err7 = {instancePath:instancePath+\"/institution\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}for(const key0 in data1){const _errs8 = errors;if(typeof key0 === \"string\"){if(!pattern5.test(key0)){const err8 = {instancePath:instancePath+\"/institution\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key0};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}else {const err9 = {instancePath:instancePath+\"/institution\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key0};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}var valid3 = _errs8 === errors;if(!valid3){const err10 = {instancePath:instancePath+\"/institution\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key0},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}for(const key1 in data1){let data2 = data1[key1];if(typeof data2 === \"string\"){if(func2(data2) > 200){const err11 = {instancePath:instancePath+\"/institution/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}if(func2(data2) < 1){const err12 = {instancePath:instancePath+\"/institution/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}else {const err13 = {instancePath:instancePath+\"/institution/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}}else {const err14 = {instancePath:instancePath+\"/institution\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}if(data.degree !== undefined){let data3 = data.degree;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if(Object.keys(data3).length < 1){const err15 = {instancePath:instancePath+\"/degree\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}for(const key2 in data3){const _errs16 = errors;if(typeof key2 === \"string\"){if(!pattern5.test(key2)){const err16 = {instancePath:instancePath+\"/degree\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key2};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}else {const err17 = {instancePath:instancePath+\"/degree\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key2};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}var valid6 = _errs16 === errors;if(!valid6){const err18 = {instancePath:instancePath+\"/degree\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key2},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}for(const key3 in data3){let data4 = data3[key3];if(typeof data4 === \"string\"){if(func2(data4) > 200){const err19 = {instancePath:instancePath+\"/degree/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}if(func2(data4) < 1){const err20 = {instancePath:instancePath+\"/degree/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}else {const err21 = {instancePath:instancePath+\"/degree/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}}else {const err22 = {instancePath:instancePath+\"/degree\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}if(data.fieldOfStudy !== undefined){let data5 = data.fieldOfStudy;if(data5 && typeof data5 == \"object\" && !Array.isArray(data5)){if(Object.keys(data5).length < 1){const err23 = {instancePath:instancePath+\"/fieldOfStudy\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}for(const key4 in data5){const _errs24 = errors;if(typeof key4 === \"string\"){if(!pattern5.test(key4)){const err24 = {instancePath:instancePath+\"/fieldOfStudy\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key4};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}else {const err25 = {instancePath:instancePath+\"/fieldOfStudy\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key4};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}var valid9 = _errs24 === errors;if(!valid9){const err26 = {instancePath:instancePath+\"/fieldOfStudy\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key4},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}for(const key5 in data5){let data6 = data5[key5];if(typeof data6 === \"string\"){if(func2(data6) > 200){const err27 = {instancePath:instancePath+\"/fieldOfStudy/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}if(func2(data6) < 1){const err28 = {instancePath:instancePath+\"/fieldOfStudy/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}}else {const err29 = {instancePath:instancePath+\"/fieldOfStudy/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}}}else {const err30 = {instancePath:instancePath+\"/fieldOfStudy\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}}if(data.description !== undefined){let data7 = data.description;if(data7 && typeof data7 == \"object\" && !Array.isArray(data7)){if(Object.keys(data7).length < 1){const err31 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}for(const key6 in data7){const _errs32 = errors;if(typeof key6 === \"string\"){if(!pattern5.test(key6)){const err32 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key6};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}else {const err33 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key6};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}var valid12 = _errs32 === errors;if(!valid12){const err34 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key6},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}}for(const key7 in data7){let data8 = data7[key7];if(typeof data8 === \"string\"){if(func2(data8) > 5000){const err35 = {instancePath:instancePath+\"/description/\" + key7.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 5000},message:\"must NOT have more than 5000 characters\"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}if(func2(data8) < 1){const err36 = {instancePath:instancePath+\"/description/\" + key7.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}}else {const err37 = {instancePath:instancePath+\"/description/\" + key7.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}}}else {const err38 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}}if(data.grade !== undefined){let data9 = data.grade;if(typeof data9 === \"string\"){if(func2(data9) > 50){const err39 = {instancePath:instancePath+\"/grade\",schemaPath:\"#/properties/grade/maxLength\",keyword:\"maxLength\",params:{limit: 50},message:\"must NOT have more than 50 characters\"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}if(func2(data9) < 1){const err40 = {instancePath:instancePath+\"/grade\",schemaPath:\"#/properties/grade/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}}else {const err41 = {instancePath:instancePath+\"/grade\",schemaPath:\"#/properties/grade/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;}}if(data.startDate !== undefined){let data10 = data.startDate;if(typeof data10 === \"string\"){if(!pattern18.test(data10)){const err42 = {instancePath:instancePath+\"/startDate\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err42];}else {vErrors.push(err42);}errors++;}}else {const err43 = {instancePath:instancePath+\"/startDate\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err43];}else {vErrors.push(err43);}errors++;}}if(data.endDate !== undefined){let data11 = data.endDate;const _errs43 = errors;let valid15 = false;const _errs44 = errors;if(typeof data11 === \"string\"){if(!pattern18.test(data11)){const err44 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err44];}else {vErrors.push(err44);}errors++;}}else {const err45 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err45];}else {vErrors.push(err45);}errors++;}var _valid0 = _errs44 === errors;valid15 = valid15 || _valid0;const _errs47 = errors;if(data11 !== null){const err46 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/properties/endDate/anyOf/1/type\",keyword:\"type\",params:{type: \"null\"},message:\"must be null\"};if(vErrors === null){vErrors = [err46];}else {vErrors.push(err46);}errors++;}var _valid0 = _errs47 === errors;valid15 = valid15 || _valid0;if(!valid15){const err47 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/properties/endDate/anyOf\",keyword:\"anyOf\",params:{},message:\"must match a schema in anyOf\"};if(vErrors === null){vErrors = [err47];}else {vErrors.push(err47);}errors++;}else {errors = _errs43;if(vErrors !== null){if(_errs43){vErrors.length = _errs43;}else {vErrors = null;}}}}if(data.isCurrent !== undefined){if(typeof data.isCurrent !== \"boolean\"){const err48 = {instancePath:instancePath+\"/isCurrent\",schemaPath:\"#/properties/isCurrent/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"};if(vErrors === null){vErrors = [err48];}else {vErrors.push(err48);}errors++;}}if(data.url !== undefined){let data13 = data.url;if(typeof data13 === \"string\"){if(func2(data13) > 2048){const err49 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err49];}else {vErrors.push(err49);}errors++;}if(!(formats2(data13))){const err50 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err50];}else {vErrors.push(err50);}errors++;}}else {const err51 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err51];}else {vErrors.push(err51);}errors++;}}if(data.order !== undefined){let data14 = data.order;if(!(((typeof data14 == \"number\") && (!(data14 % 1) && !isNaN(data14))) && (isFinite(data14)))){const err52 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"};if(vErrors === null){vErrors = [err52];}else {vErrors.push(err52);}errors++;}if((typeof data14 == \"number\") && (isFinite(data14))){if(data14 < 0 || isNaN(data14)){const err53 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 0},message:\"must be >= 0\"};if(vErrors === null){vErrors = [err53];}else {vErrors.push(err53);}errors++;}}}}else {const err54 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err54];}else {vErrors.push(err54);}errors++;}validate44.errors = vErrors;return errors === 0;}validate44.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema107 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"title\",\"date\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"title\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"publisher\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"date\":{\"$ref\":\"#/$defs/YearMonth\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"doi\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":200,\"description\":\"DOI identifier (e.g. '10.1145/3548643.3548644'). The full URL goes in 'url'.\"},\"coAuthors\":{\"type\":\"array\",\"maxItems\":50,\"items\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100},\"description\":\"Co-author names in original script. Excludes the profile owner.\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}};function validate46(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate46.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.id === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"id\"},message:\"must have required property '\"+\"id\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.title === undefined){const err1 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"title\"},message:\"must have required property '\"+\"title\"+\"'\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.date === undefined){const err2 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"date\"},message:\"must have required property '\"+\"date\"+\"'\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.id !== undefined){let data0 = data.id;if(typeof data0 === \"string\"){if(func2(data0) > 64){const err3 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(func2(data0) < 1){const err4 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(!pattern12.test(data0)){const err5 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}else {const err6 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}if(data.title !== undefined){let data1 = data.title;if(data1 && typeof data1 == \"object\" && !Array.isArray(data1)){if(Object.keys(data1).length < 1){const err7 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}for(const key0 in data1){const _errs8 = errors;if(typeof key0 === \"string\"){if(!pattern5.test(key0)){const err8 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key0};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}else {const err9 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key0};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}var valid3 = _errs8 === errors;if(!valid3){const err10 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key0},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}for(const key1 in data1){let data2 = data1[key1];if(typeof data2 === \"string\"){if(func2(data2) > 200){const err11 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}if(func2(data2) < 1){const err12 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}else {const err13 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}}else {const err14 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}if(data.publisher !== undefined){let data3 = data.publisher;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if(Object.keys(data3).length < 1){const err15 = {instancePath:instancePath+\"/publisher\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}for(const key2 in data3){const _errs16 = errors;if(typeof key2 === \"string\"){if(!pattern5.test(key2)){const err16 = {instancePath:instancePath+\"/publisher\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key2};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}else {const err17 = {instancePath:instancePath+\"/publisher\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key2};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}var valid6 = _errs16 === errors;if(!valid6){const err18 = {instancePath:instancePath+\"/publisher\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key2},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}for(const key3 in data3){let data4 = data3[key3];if(typeof data4 === \"string\"){if(func2(data4) > 200){const err19 = {instancePath:instancePath+\"/publisher/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}if(func2(data4) < 1){const err20 = {instancePath:instancePath+\"/publisher/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}else {const err21 = {instancePath:instancePath+\"/publisher/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}}else {const err22 = {instancePath:instancePath+\"/publisher\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}if(data.description !== undefined){let data5 = data.description;if(data5 && typeof data5 == \"object\" && !Array.isArray(data5)){if(Object.keys(data5).length < 1){const err23 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}for(const key4 in data5){const _errs24 = errors;if(typeof key4 === \"string\"){if(!pattern5.test(key4)){const err24 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key4};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}else {const err25 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key4};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}var valid9 = _errs24 === errors;if(!valid9){const err26 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key4},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}for(const key5 in data5){let data6 = data5[key5];if(typeof data6 === \"string\"){if(func2(data6) > 5000){const err27 = {instancePath:instancePath+\"/description/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 5000},message:\"must NOT have more than 5000 characters\"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}if(func2(data6) < 1){const err28 = {instancePath:instancePath+\"/description/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}}else {const err29 = {instancePath:instancePath+\"/description/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}}}else {const err30 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}}if(data.date !== undefined){let data7 = data.date;if(typeof data7 === \"string\"){if(!pattern18.test(data7)){const err31 = {instancePath:instancePath+\"/date\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}}else {const err32 = {instancePath:instancePath+\"/date\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}if(data.url !== undefined){let data8 = data.url;if(typeof data8 === \"string\"){if(func2(data8) > 2048){const err33 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}if(!(formats2(data8))){const err34 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}}else {const err35 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}}if(data.doi !== undefined){let data9 = data.doi;if(typeof data9 === \"string\"){if(func2(data9) > 200){const err36 = {instancePath:instancePath+\"/doi\",schemaPath:\"#/properties/doi/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}if(func2(data9) < 1){const err37 = {instancePath:instancePath+\"/doi\",schemaPath:\"#/properties/doi/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}}else {const err38 = {instancePath:instancePath+\"/doi\",schemaPath:\"#/properties/doi/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}}if(data.coAuthors !== undefined){let data10 = data.coAuthors;if(Array.isArray(data10)){if(data10.length > 50){const err39 = {instancePath:instancePath+\"/coAuthors\",schemaPath:\"#/properties/coAuthors/maxItems\",keyword:\"maxItems\",params:{limit: 50},message:\"must NOT have more than 50 items\"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}const len0 = data10.length;for(let i0=0; i0<len0; i0++){let data11 = data10[i0];if(typeof data11 === \"string\"){if(func2(data11) > 100){const err40 = {instancePath:instancePath+\"/coAuthors/\" + i0,schemaPath:\"#/properties/coAuthors/items/maxLength\",keyword:\"maxLength\",params:{limit: 100},message:\"must NOT have more than 100 characters\"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}if(func2(data11) < 1){const err41 = {instancePath:instancePath+\"/coAuthors/\" + i0,schemaPath:\"#/properties/coAuthors/items/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;}}else {const err42 = {instancePath:instancePath+\"/coAuthors/\" + i0,schemaPath:\"#/properties/coAuthors/items/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err42];}else {vErrors.push(err42);}errors++;}}}else {const err43 = {instancePath:instancePath+\"/coAuthors\",schemaPath:\"#/properties/coAuthors/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err43];}else {vErrors.push(err43);}errors++;}}if(data.order !== undefined){let data12 = data.order;if(!(((typeof data12 == \"number\") && (!(data12 % 1) && !isNaN(data12))) && (isFinite(data12)))){const err44 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"};if(vErrors === null){vErrors = [err44];}else {vErrors.push(err44);}errors++;}if((typeof data12 == \"number\") && (isFinite(data12))){if(data12 < 0 || isNaN(data12)){const err45 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 0},message:\"must be >= 0\"};if(vErrors === null){vErrors = [err45];}else {vErrors.push(err45);}errors++;}}}}else {const err46 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err46];}else {vErrors.push(err46);}errors++;}validate46.errors = vErrors;return errors === 0;}validate46.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema114 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"language\",\"proficiency\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"language\":{\"$ref\":\"#/$defs/LocaleTag\"},\"displayName\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"proficiency\":{\"type\":\"string\",\"enum\":[\"native\",\"fluent\",\"professional\",\"intermediate\",\"basic\"],\"description\":\"LinkedIn-compatible 5-level proficiency.\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}};const schema116 = {\"type\":\"string\",\"minLength\":2,\"maxLength\":35,\"pattern\":\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\",\"description\":\"BCP-47 language tag (e.g., 'en', 'ja', 'zh-Hant', 'pt-BR').\"};function validate48(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate48.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.id === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"id\"},message:\"must have required property '\"+\"id\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.language === undefined){const err1 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"language\"},message:\"must have required property '\"+\"language\"+\"'\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.proficiency === undefined){const err2 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"proficiency\"},message:\"must have required property '\"+\"proficiency\"+\"'\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.id !== undefined){let data0 = data.id;if(typeof data0 === \"string\"){if(func2(data0) > 64){const err3 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(func2(data0) < 1){const err4 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(!pattern12.test(data0)){const err5 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}else {const err6 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}if(data.language !== undefined){let data1 = data.language;if(typeof data1 === \"string\"){if(func2(data1) > 35){const err7 = {instancePath:instancePath+\"/language\",schemaPath:\"#/$defs/LocaleTag/maxLength\",keyword:\"maxLength\",params:{limit: 35},message:\"must NOT have more than 35 characters\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}if(func2(data1) < 2){const err8 = {instancePath:instancePath+\"/language\",schemaPath:\"#/$defs/LocaleTag/minLength\",keyword:\"minLength\",params:{limit: 2},message:\"must NOT have fewer than 2 characters\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}if(!pattern5.test(data1)){const err9 = {instancePath:instancePath+\"/language\",schemaPath:\"#/$defs/LocaleTag/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}else {const err10 = {instancePath:instancePath+\"/language\",schemaPath:\"#/$defs/LocaleTag/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}if(data.displayName !== undefined){let data2 = data.displayName;if(data2 && typeof data2 == \"object\" && !Array.isArray(data2)){if(Object.keys(data2).length < 1){const err11 = {instancePath:instancePath+\"/displayName\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}for(const key0 in data2){const _errs11 = errors;if(typeof key0 === \"string\"){if(!pattern5.test(key0)){const err12 = {instancePath:instancePath+\"/displayName\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key0};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}else {const err13 = {instancePath:instancePath+\"/displayName\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key0};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}var valid4 = _errs11 === errors;if(!valid4){const err14 = {instancePath:instancePath+\"/displayName\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key0},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}for(const key1 in data2){let data3 = data2[key1];if(typeof data3 === \"string\"){if(func2(data3) > 200){const err15 = {instancePath:instancePath+\"/displayName/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}if(func2(data3) < 1){const err16 = {instancePath:instancePath+\"/displayName/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}else {const err17 = {instancePath:instancePath+\"/displayName/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}}else {const err18 = {instancePath:instancePath+\"/displayName\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}if(data.proficiency !== undefined){let data4 = data.proficiency;if(typeof data4 !== \"string\"){const err19 = {instancePath:instancePath+\"/proficiency\",schemaPath:\"#/properties/proficiency/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}if(!(((((data4 === \"native\") || (data4 === \"fluent\")) || (data4 === \"professional\")) || (data4 === \"intermediate\")) || (data4 === \"basic\"))){const err20 = {instancePath:instancePath+\"/proficiency\",schemaPath:\"#/properties/proficiency/enum\",keyword:\"enum\",params:{allowedValues: schema114.properties.proficiency.enum},message:\"must be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}if(data.order !== undefined){let data5 = data.order;if(!(((typeof data5 == \"number\") && (!(data5 % 1) && !isNaN(data5))) && (isFinite(data5)))){const err21 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}if((typeof data5 == \"number\") && (isFinite(data5))){if(data5 < 0 || isNaN(data5)){const err22 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 0},message:\"must be >= 0\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}}}else {const err23 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}validate48.errors = vErrors;return errors === 0;}validate48.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema118 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"title\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"title\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"provider\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"courseNumber\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":50},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"completionDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"certificateUrl\":{\"$ref\":\"#/$defs/Url\"},\"relatedEducationId\":{\"$ref\":\"#/$defs/Slug\",\"description\":\"Optional reference to an education[].id (e.g. for university coursework).\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}};function validate50(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate50.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.id === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"id\"},message:\"must have required property '\"+\"id\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.title === undefined){const err1 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"title\"},message:\"must have required property '\"+\"title\"+\"'\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.id !== undefined){let data0 = data.id;if(typeof data0 === \"string\"){if(func2(data0) > 64){const err2 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(func2(data0) < 1){const err3 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(!pattern12.test(data0)){const err4 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}else {const err5 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}if(data.title !== undefined){let data1 = data.title;if(data1 && typeof data1 == \"object\" && !Array.isArray(data1)){if(Object.keys(data1).length < 1){const err6 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}for(const key0 in data1){const _errs8 = errors;if(typeof key0 === \"string\"){if(!pattern5.test(key0)){const err7 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key0};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}else {const err8 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key0};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}var valid3 = _errs8 === errors;if(!valid3){const err9 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key0},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}for(const key1 in data1){let data2 = data1[key1];if(typeof data2 === \"string\"){if(func2(data2) > 200){const err10 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}if(func2(data2) < 1){const err11 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}else {const err12 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}}else {const err13 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}if(data.provider !== undefined){let data3 = data.provider;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if(Object.keys(data3).length < 1){const err14 = {instancePath:instancePath+\"/provider\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}for(const key2 in data3){const _errs16 = errors;if(typeof key2 === \"string\"){if(!pattern5.test(key2)){const err15 = {instancePath:instancePath+\"/provider\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key2};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}else {const err16 = {instancePath:instancePath+\"/provider\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key2};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}var valid6 = _errs16 === errors;if(!valid6){const err17 = {instancePath:instancePath+\"/provider\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key2},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}for(const key3 in data3){let data4 = data3[key3];if(typeof data4 === \"string\"){if(func2(data4) > 200){const err18 = {instancePath:instancePath+\"/provider/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}if(func2(data4) < 1){const err19 = {instancePath:instancePath+\"/provider/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}else {const err20 = {instancePath:instancePath+\"/provider/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}}else {const err21 = {instancePath:instancePath+\"/provider\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}if(data.courseNumber !== undefined){let data5 = data.courseNumber;if(typeof data5 === \"string\"){if(func2(data5) > 50){const err22 = {instancePath:instancePath+\"/courseNumber\",schemaPath:\"#/properties/courseNumber/maxLength\",keyword:\"maxLength\",params:{limit: 50},message:\"must NOT have more than 50 characters\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}if(func2(data5) < 1){const err23 = {instancePath:instancePath+\"/courseNumber\",schemaPath:\"#/properties/courseNumber/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}else {const err24 = {instancePath:instancePath+\"/courseNumber\",schemaPath:\"#/properties/courseNumber/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}if(data.description !== undefined){let data6 = data.description;if(data6 && typeof data6 == \"object\" && !Array.isArray(data6)){if(Object.keys(data6).length < 1){const err25 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}for(const key4 in data6){const _errs26 = errors;if(typeof key4 === \"string\"){if(!pattern5.test(key4)){const err26 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key4};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}else {const err27 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key4};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}var valid9 = _errs26 === errors;if(!valid9){const err28 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key4},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}}for(const key5 in data6){let data7 = data6[key5];if(typeof data7 === \"string\"){if(func2(data7) > 5000){const err29 = {instancePath:instancePath+\"/description/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 5000},message:\"must NOT have more than 5000 characters\"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}if(func2(data7) < 1){const err30 = {instancePath:instancePath+\"/description/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}}else {const err31 = {instancePath:instancePath+\"/description/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}}}else {const err32 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}if(data.completionDate !== undefined){let data8 = data.completionDate;if(typeof data8 === \"string\"){if(!pattern18.test(data8)){const err33 = {instancePath:instancePath+\"/completionDate\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}else {const err34 = {instancePath:instancePath+\"/completionDate\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}}if(data.certificateUrl !== undefined){let data9 = data.certificateUrl;if(typeof data9 === \"string\"){if(func2(data9) > 2048){const err35 = {instancePath:instancePath+\"/certificateUrl\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}if(!(formats2(data9))){const err36 = {instancePath:instancePath+\"/certificateUrl\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}}else {const err37 = {instancePath:instancePath+\"/certificateUrl\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}}if(data.relatedEducationId !== undefined){let data10 = data.relatedEducationId;if(typeof data10 === \"string\"){if(func2(data10) > 64){const err38 = {instancePath:instancePath+\"/relatedEducationId\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}if(func2(data10) < 1){const err39 = {instancePath:instancePath+\"/relatedEducationId\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}if(!pattern12.test(data10)){const err40 = {instancePath:instancePath+\"/relatedEducationId\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}}else {const err41 = {instancePath:instancePath+\"/relatedEducationId\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;}}if(data.order !== undefined){let data11 = data.order;if(!(((typeof data11 == \"number\") && (!(data11 % 1) && !isNaN(data11))) && (isFinite(data11)))){const err42 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"};if(vErrors === null){vErrors = [err42];}else {vErrors.push(err42);}errors++;}if((typeof data11 == \"number\") && (isFinite(data11))){if(data11 < 0 || isNaN(data11)){const err43 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 0},message:\"must be >= 0\"};if(vErrors === null){vErrors = [err43];}else {vErrors.push(err43);}errors++;}}}}else {const err44 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err44];}else {vErrors.push(err44);}errors++;}validate50.errors = vErrors;return errors === 0;}validate50.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema126 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"title\",\"patentNumber\",\"status\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"title\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"patentNumber\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100},\"office\":{\"type\":\"string\",\"maxLength\":100,\"description\":\"Patent office name (e.g. 'USPTO', 'JPO', 'EPO').\"},\"status\":{\"type\":\"string\",\"enum\":[\"pending\",\"issued\",\"expired\",\"abandoned\"]},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"filingDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"grantDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"coInventors\":{\"type\":\"array\",\"maxItems\":20,\"items\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100}},\"order\":{\"type\":\"integer\",\"minimum\":0}}};function validate52(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate52.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.id === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"id\"},message:\"must have required property '\"+\"id\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.title === undefined){const err1 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"title\"},message:\"must have required property '\"+\"title\"+\"'\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.patentNumber === undefined){const err2 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"patentNumber\"},message:\"must have required property '\"+\"patentNumber\"+\"'\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.status === undefined){const err3 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"status\"},message:\"must have required property '\"+\"status\"+\"'\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data.id !== undefined){let data0 = data.id;if(typeof data0 === \"string\"){if(func2(data0) > 64){const err4 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(func2(data0) < 1){const err5 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(!pattern12.test(data0)){const err6 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}else {const err7 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}if(data.title !== undefined){let data1 = data.title;if(data1 && typeof data1 == \"object\" && !Array.isArray(data1)){if(Object.keys(data1).length < 1){const err8 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}for(const key0 in data1){const _errs8 = errors;if(typeof key0 === \"string\"){if(!pattern5.test(key0)){const err9 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key0};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}else {const err10 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key0};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}var valid3 = _errs8 === errors;if(!valid3){const err11 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key0},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}for(const key1 in data1){let data2 = data1[key1];if(typeof data2 === \"string\"){if(func2(data2) > 200){const err12 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}if(func2(data2) < 1){const err13 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}else {const err14 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}}else {const err15 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}if(data.patentNumber !== undefined){let data3 = data.patentNumber;if(typeof data3 === \"string\"){if(func2(data3) > 100){const err16 = {instancePath:instancePath+\"/patentNumber\",schemaPath:\"#/properties/patentNumber/maxLength\",keyword:\"maxLength\",params:{limit: 100},message:\"must NOT have more than 100 characters\"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}if(func2(data3) < 1){const err17 = {instancePath:instancePath+\"/patentNumber\",schemaPath:\"#/properties/patentNumber/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}else {const err18 = {instancePath:instancePath+\"/patentNumber\",schemaPath:\"#/properties/patentNumber/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}if(data.office !== undefined){let data4 = data.office;if(typeof data4 === \"string\"){if(func2(data4) > 100){const err19 = {instancePath:instancePath+\"/office\",schemaPath:\"#/properties/office/maxLength\",keyword:\"maxLength\",params:{limit: 100},message:\"must NOT have more than 100 characters\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}else {const err20 = {instancePath:instancePath+\"/office\",schemaPath:\"#/properties/office/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}if(data.status !== undefined){let data5 = data.status;if(typeof data5 !== \"string\"){const err21 = {instancePath:instancePath+\"/status\",schemaPath:\"#/properties/status/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}if(!((((data5 === \"pending\") || (data5 === \"issued\")) || (data5 === \"expired\")) || (data5 === \"abandoned\"))){const err22 = {instancePath:instancePath+\"/status\",schemaPath:\"#/properties/status/enum\",keyword:\"enum\",params:{allowedValues: schema126.properties.status.enum},message:\"must be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}if(data.description !== undefined){let data6 = data.description;if(data6 && typeof data6 == \"object\" && !Array.isArray(data6)){if(Object.keys(data6).length < 1){const err23 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}for(const key2 in data6){const _errs22 = errors;if(typeof key2 === \"string\"){if(!pattern5.test(key2)){const err24 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key2};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}else {const err25 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key2};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}var valid6 = _errs22 === errors;if(!valid6){const err26 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key2},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}for(const key3 in data6){let data7 = data6[key3];if(typeof data7 === \"string\"){if(func2(data7) > 5000){const err27 = {instancePath:instancePath+\"/description/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 5000},message:\"must NOT have more than 5000 characters\"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}if(func2(data7) < 1){const err28 = {instancePath:instancePath+\"/description/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}}else {const err29 = {instancePath:instancePath+\"/description/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}}}else {const err30 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}}if(data.filingDate !== undefined){let data8 = data.filingDate;if(typeof data8 === \"string\"){if(!pattern18.test(data8)){const err31 = {instancePath:instancePath+\"/filingDate\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}}else {const err32 = {instancePath:instancePath+\"/filingDate\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}if(data.grantDate !== undefined){let data9 = data.grantDate;if(typeof data9 === \"string\"){if(!pattern18.test(data9)){const err33 = {instancePath:instancePath+\"/grantDate\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}else {const err34 = {instancePath:instancePath+\"/grantDate\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}}if(data.url !== undefined){let data10 = data.url;if(typeof data10 === \"string\"){if(func2(data10) > 2048){const err35 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}if(!(formats2(data10))){const err36 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}}else {const err37 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}}if(data.coInventors !== undefined){let data11 = data.coInventors;if(Array.isArray(data11)){if(data11.length > 20){const err38 = {instancePath:instancePath+\"/coInventors\",schemaPath:\"#/properties/coInventors/maxItems\",keyword:\"maxItems\",params:{limit: 20},message:\"must NOT have more than 20 items\"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}const len0 = data11.length;for(let i0=0; i0<len0; i0++){let data12 = data11[i0];if(typeof data12 === \"string\"){if(func2(data12) > 100){const err39 = {instancePath:instancePath+\"/coInventors/\" + i0,schemaPath:\"#/properties/coInventors/items/maxLength\",keyword:\"maxLength\",params:{limit: 100},message:\"must NOT have more than 100 characters\"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}if(func2(data12) < 1){const err40 = {instancePath:instancePath+\"/coInventors/\" + i0,schemaPath:\"#/properties/coInventors/items/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}}else {const err41 = {instancePath:instancePath+\"/coInventors/\" + i0,schemaPath:\"#/properties/coInventors/items/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;}}}else {const err42 = {instancePath:instancePath+\"/coInventors\",schemaPath:\"#/properties/coInventors/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err42];}else {vErrors.push(err42);}errors++;}}if(data.order !== undefined){let data13 = data.order;if(!(((typeof data13 == \"number\") && (!(data13 % 1) && !isNaN(data13))) && (isFinite(data13)))){const err43 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"};if(vErrors === null){vErrors = [err43];}else {vErrors.push(err43);}errors++;}if((typeof data13 == \"number\") && (isFinite(data13))){if(data13 < 0 || isNaN(data13)){const err44 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 0},message:\"must be >= 0\"};if(vErrors === null){vErrors = [err44];}else {vErrors.push(err44);}errors++;}}}}else {const err45 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err45];}else {vErrors.push(err45);}errors++;}validate52.errors = vErrors;return errors === 0;}validate52.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema133 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"title\",\"score\",\"date\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"title\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"score\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":50,\"description\":\"Free-form score string (e.g. '112 / 120', '330', 'N1 Pass', or a percentile). The validator does not interpret its contents.\"},\"date\":{\"$ref\":\"#/$defs/YearMonth\"},\"relatedEducationId\":{\"$ref\":\"#/$defs/Slug\",\"description\":\"Optional reference to an education[].id (e.g. for a university course exam).\"},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}};function validate54(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate54.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.id === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"id\"},message:\"must have required property '\"+\"id\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.title === undefined){const err1 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"title\"},message:\"must have required property '\"+\"title\"+\"'\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.score === undefined){const err2 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"score\"},message:\"must have required property '\"+\"score\"+\"'\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.date === undefined){const err3 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"date\"},message:\"must have required property '\"+\"date\"+\"'\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data.id !== undefined){let data0 = data.id;if(typeof data0 === \"string\"){if(func2(data0) > 64){const err4 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(func2(data0) < 1){const err5 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(!pattern12.test(data0)){const err6 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}else {const err7 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}if(data.title !== undefined){let data1 = data.title;if(data1 && typeof data1 == \"object\" && !Array.isArray(data1)){if(Object.keys(data1).length < 1){const err8 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}for(const key0 in data1){const _errs8 = errors;if(typeof key0 === \"string\"){if(!pattern5.test(key0)){const err9 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key0};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}else {const err10 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key0};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}var valid3 = _errs8 === errors;if(!valid3){const err11 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key0},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}for(const key1 in data1){let data2 = data1[key1];if(typeof data2 === \"string\"){if(func2(data2) > 200){const err12 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}if(func2(data2) < 1){const err13 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}else {const err14 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}}else {const err15 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}if(data.score !== undefined){let data3 = data.score;if(typeof data3 === \"string\"){if(func2(data3) > 50){const err16 = {instancePath:instancePath+\"/score\",schemaPath:\"#/properties/score/maxLength\",keyword:\"maxLength\",params:{limit: 50},message:\"must NOT have more than 50 characters\"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}if(func2(data3) < 1){const err17 = {instancePath:instancePath+\"/score\",schemaPath:\"#/properties/score/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}else {const err18 = {instancePath:instancePath+\"/score\",schemaPath:\"#/properties/score/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}if(data.date !== undefined){let data4 = data.date;if(typeof data4 === \"string\"){if(!pattern18.test(data4)){const err19 = {instancePath:instancePath+\"/date\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}else {const err20 = {instancePath:instancePath+\"/date\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}if(data.relatedEducationId !== undefined){let data5 = data.relatedEducationId;if(typeof data5 === \"string\"){if(func2(data5) > 64){const err21 = {instancePath:instancePath+\"/relatedEducationId\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}if(func2(data5) < 1){const err22 = {instancePath:instancePath+\"/relatedEducationId\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}if(!pattern12.test(data5)){const err23 = {instancePath:instancePath+\"/relatedEducationId\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}else {const err24 = {instancePath:instancePath+\"/relatedEducationId\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}if(data.description !== undefined){let data6 = data.description;if(data6 && typeof data6 == \"object\" && !Array.isArray(data6)){if(Object.keys(data6).length < 1){const err25 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}for(const key2 in data6){const _errs24 = errors;if(typeof key2 === \"string\"){if(!pattern5.test(key2)){const err26 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key2};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}else {const err27 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key2};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}var valid8 = _errs24 === errors;if(!valid8){const err28 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key2},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}}for(const key3 in data6){let data7 = data6[key3];if(typeof data7 === \"string\"){if(func2(data7) > 5000){const err29 = {instancePath:instancePath+\"/description/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 5000},message:\"must NOT have more than 5000 characters\"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}if(func2(data7) < 1){const err30 = {instancePath:instancePath+\"/description/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}}else {const err31 = {instancePath:instancePath+\"/description/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}}}else {const err32 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}if(data.url !== undefined){let data8 = data.url;if(typeof data8 === \"string\"){if(func2(data8) > 2048){const err33 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}if(!(formats2(data8))){const err34 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}}else {const err35 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}}if(data.order !== undefined){let data9 = data.order;if(!(((typeof data9 == \"number\") && (!(data9 % 1) && !isNaN(data9))) && (isFinite(data9)))){const err36 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}if((typeof data9 == \"number\") && (isFinite(data9))){if(data9 < 0 || isNaN(data9)){const err37 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 0},message:\"must be >= 0\"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}}}}else {const err38 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}validate54.errors = vErrors;return errors === 0;}validate54.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema140 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"body\",\"author\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"body\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"author\":{\"$ref\":\"#/$defs/RecommendationAuthor\"},\"relationship\":{\"$ref\":\"#/$defs/LocalizedTitle\",\"description\":\"How the recommender relates to the profile owner (e.g. 'managed directly', 'worked together').\"},\"date\":{\"$ref\":\"#/$defs/YearMonth\"},\"relatedCareerId\":{\"$ref\":\"#/$defs/Slug\",\"description\":\"Optional reference to a careers[].id (the position the recommendation pertains to).\"},\"relatedEducationId\":{\"$ref\":\"#/$defs/Slug\",\"description\":\"Optional reference to an education[].id (e.g. a recommendation from a professor).\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}};const schema143 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"name\"],\"properties\":{\"name\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100,\"description\":\"Recommender's name, in its original script. Owner-curated; takuhon does not verify it.\"},\"headline\":{\"$ref\":\"#/$defs/LocalizedTitle\",\"description\":\"Recommender's title / role / organization at the time of the recommendation.\"},\"url\":{\"$ref\":\"#/$defs/Url\",\"description\":\"Link to the recommender's profile, for external verification by the reader.\"}}};function validate57(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate57.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.name === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"name\"},message:\"must have required property '\"+\"name\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.name !== undefined){let data0 = data.name;if(typeof data0 === \"string\"){if(func2(data0) > 100){const err1 = {instancePath:instancePath+\"/name\",schemaPath:\"#/properties/name/maxLength\",keyword:\"maxLength\",params:{limit: 100},message:\"must NOT have more than 100 characters\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(func2(data0) < 1){const err2 = {instancePath:instancePath+\"/name\",schemaPath:\"#/properties/name/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}else {const err3 = {instancePath:instancePath+\"/name\",schemaPath:\"#/properties/name/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}if(data.headline !== undefined){let data1 = data.headline;if(data1 && typeof data1 == \"object\" && !Array.isArray(data1)){if(Object.keys(data1).length < 1){const err4 = {instancePath:instancePath+\"/headline\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}for(const key0 in data1){const _errs7 = errors;if(typeof key0 === \"string\"){if(!pattern5.test(key0)){const err5 = {instancePath:instancePath+\"/headline\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key0};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}else {const err6 = {instancePath:instancePath+\"/headline\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key0};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}var valid2 = _errs7 === errors;if(!valid2){const err7 = {instancePath:instancePath+\"/headline\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key0},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}for(const key1 in data1){let data2 = data1[key1];if(typeof data2 === \"string\"){if(func2(data2) > 200){const err8 = {instancePath:instancePath+\"/headline/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}if(func2(data2) < 1){const err9 = {instancePath:instancePath+\"/headline/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}else {const err10 = {instancePath:instancePath+\"/headline/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}}else {const err11 = {instancePath:instancePath+\"/headline\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}if(data.url !== undefined){let data3 = data.url;if(typeof data3 === \"string\"){if(func2(data3) > 2048){const err12 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}if(!(formats2(data3))){const err13 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}else {const err14 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}}else {const err15 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}validate57.errors = vErrors;return errors === 0;}validate57.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};function validate56(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate56.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.id === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"id\"},message:\"must have required property '\"+\"id\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.body === undefined){const err1 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"body\"},message:\"must have required property '\"+\"body\"+\"'\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.author === undefined){const err2 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"author\"},message:\"must have required property '\"+\"author\"+\"'\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.id !== undefined){let data0 = data.id;if(typeof data0 === \"string\"){if(func2(data0) > 64){const err3 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(func2(data0) < 1){const err4 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(!pattern12.test(data0)){const err5 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}else {const err6 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}if(data.body !== undefined){let data1 = data.body;if(data1 && typeof data1 == \"object\" && !Array.isArray(data1)){if(Object.keys(data1).length < 1){const err7 = {instancePath:instancePath+\"/body\",schemaPath:\"#/$defs/LocalizedBody/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}for(const key0 in data1){const _errs8 = errors;if(typeof key0 === \"string\"){if(!pattern5.test(key0)){const err8 = {instancePath:instancePath+\"/body\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key0};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}else {const err9 = {instancePath:instancePath+\"/body\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key0};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}var valid3 = _errs8 === errors;if(!valid3){const err10 = {instancePath:instancePath+\"/body\",schemaPath:\"#/$defs/LocalizedBody/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key0},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}for(const key1 in data1){let data2 = data1[key1];if(typeof data2 === \"string\"){if(func2(data2) > 5000){const err11 = {instancePath:instancePath+\"/body/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 5000},message:\"must NOT have more than 5000 characters\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}if(func2(data2) < 1){const err12 = {instancePath:instancePath+\"/body/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}else {const err13 = {instancePath:instancePath+\"/body/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}}else {const err14 = {instancePath:instancePath+\"/body\",schemaPath:\"#/$defs/LocalizedBody/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}if(data.author !== undefined){if(!(validate57(data.author, {instancePath:instancePath+\"/author\",parentData:data,parentDataProperty:\"author\",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate57.errors : vErrors.concat(validate57.errors);errors = vErrors.length;}}if(data.relationship !== undefined){let data4 = data.relationship;if(data4 && typeof data4 == \"object\" && !Array.isArray(data4)){if(Object.keys(data4).length < 1){const err15 = {instancePath:instancePath+\"/relationship\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}for(const key2 in data4){const _errs17 = errors;if(typeof key2 === \"string\"){if(!pattern5.test(key2)){const err16 = {instancePath:instancePath+\"/relationship\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key2};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}else {const err17 = {instancePath:instancePath+\"/relationship\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key2};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}var valid6 = _errs17 === errors;if(!valid6){const err18 = {instancePath:instancePath+\"/relationship\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key2},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}for(const key3 in data4){let data5 = data4[key3];if(typeof data5 === \"string\"){if(func2(data5) > 200){const err19 = {instancePath:instancePath+\"/relationship/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}if(func2(data5) < 1){const err20 = {instancePath:instancePath+\"/relationship/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}else {const err21 = {instancePath:instancePath+\"/relationship/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}}else {const err22 = {instancePath:instancePath+\"/relationship\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}if(data.date !== undefined){let data6 = data.date;if(typeof data6 === \"string\"){if(!pattern18.test(data6)){const err23 = {instancePath:instancePath+\"/date\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}else {const err24 = {instancePath:instancePath+\"/date\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}if(data.relatedCareerId !== undefined){let data7 = data.relatedCareerId;if(typeof data7 === \"string\"){if(func2(data7) > 64){const err25 = {instancePath:instancePath+\"/relatedCareerId\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}if(func2(data7) < 1){const err26 = {instancePath:instancePath+\"/relatedCareerId\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}if(!pattern12.test(data7)){const err27 = {instancePath:instancePath+\"/relatedCareerId\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}}else {const err28 = {instancePath:instancePath+\"/relatedCareerId\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}}if(data.relatedEducationId !== undefined){let data8 = data.relatedEducationId;if(typeof data8 === \"string\"){if(func2(data8) > 64){const err29 = {instancePath:instancePath+\"/relatedEducationId\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}if(func2(data8) < 1){const err30 = {instancePath:instancePath+\"/relatedEducationId\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}if(!pattern12.test(data8)){const err31 = {instancePath:instancePath+\"/relatedEducationId\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}}else {const err32 = {instancePath:instancePath+\"/relatedEducationId\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}if(data.order !== undefined){let data9 = data.order;if(!(((typeof data9 == \"number\") && (!(data9 % 1) && !isNaN(data9))) && (isFinite(data9)))){const err33 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}if((typeof data9 == \"number\") && (isFinite(data9))){if(data9 < 0 || isNaN(data9)){const err34 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 0},message:\"must be >= 0\"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}}}}else {const err35 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}validate56.errors = vErrors;return errors === 0;}validate56.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema150 = {\"type\":\"object\",\"additionalProperties\":true,\"properties\":{\"email\":{\"$ref\":\"#/$defs/Email\"},\"showEmail\":{\"type\":\"boolean\",\"default\":false},\"formUrl\":{\"$ref\":\"#/$defs/Url\"}}};const schema151 = {\"type\":\"string\",\"format\":\"email\",\"maxLength\":254};const formats32 = /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i;function validate60(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate60.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.email !== undefined){let data0 = data.email;if(typeof data0 === \"string\"){if(func2(data0) > 254){const err0 = {instancePath:instancePath+\"/email\",schemaPath:\"#/$defs/Email/maxLength\",keyword:\"maxLength\",params:{limit: 254},message:\"must NOT have more than 254 characters\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(!(formats32.test(data0))){const err1 = {instancePath:instancePath+\"/email\",schemaPath:\"#/$defs/Email/format\",keyword:\"format\",params:{format: \"email\"},message:\"must match format \\\"\"+\"email\"+\"\\\"\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}else {const err2 = {instancePath:instancePath+\"/email\",schemaPath:\"#/$defs/Email/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}if(data.showEmail !== undefined){if(typeof data.showEmail !== \"boolean\"){const err3 = {instancePath:instancePath+\"/showEmail\",schemaPath:\"#/properties/showEmail/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}if(data.formUrl !== undefined){let data2 = data.formUrl;if(typeof data2 === \"string\"){if(func2(data2) > 2048){const err4 = {instancePath:instancePath+\"/formUrl\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(!(formats2(data2))){const err5 = {instancePath:instancePath+\"/formUrl\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}else {const err6 = {instancePath:instancePath+\"/formUrl\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}}else {const err7 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}validate60.errors = vErrors;return errors === 0;}validate60.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema153 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"defaultLocale\",\"availableLocales\"],\"properties\":{\"defaultLocale\":{\"$ref\":\"#/$defs/LocaleTag\"},\"fallbackLocale\":{\"$ref\":\"#/$defs/LocaleTag\"},\"availableLocales\":{\"type\":\"array\",\"minItems\":1,\"maxItems\":50,\"uniqueItems\":true,\"items\":{\"$ref\":\"#/$defs/LocaleTag\"}},\"theme\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":64,\"description\":\"UI theme identifier. 'default' is the built-in theme; adapters may add more.\"},\"showPoweredBy\":{\"type\":\"boolean\",\"default\":true,\"description\":\"Display the 'Powered by takuhon' attribution in the rendered profile.\"},\"enableJsonLd\":{\"type\":\"boolean\",\"default\":true,\"description\":\"Emit Schema.org JSON-LD on the rendered profile page.\"},\"enableApi\":{\"type\":\"boolean\",\"default\":true,\"description\":\"Expose the public read API endpoints (GET /api/profile, /api/jsonld, /api/schema, /takuhon.json).\"},\"enableAnalytics\":{\"type\":\"boolean\",\"default\":false,\"description\":\"Opt-in flag for first-party analytics. Default is false to keep takuhon privacy-respecting by default.\"}}};const func0 = require(\"ajv/dist/runtime/equal\").default;function validate62(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate62.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.defaultLocale === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"defaultLocale\"},message:\"must have required property '\"+\"defaultLocale\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.availableLocales === undefined){const err1 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"availableLocales\"},message:\"must have required property '\"+\"availableLocales\"+\"'\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.defaultLocale !== undefined){let data0 = data.defaultLocale;if(typeof data0 === \"string\"){if(func2(data0) > 35){const err2 = {instancePath:instancePath+\"/defaultLocale\",schemaPath:\"#/$defs/LocaleTag/maxLength\",keyword:\"maxLength\",params:{limit: 35},message:\"must NOT have more than 35 characters\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(func2(data0) < 2){const err3 = {instancePath:instancePath+\"/defaultLocale\",schemaPath:\"#/$defs/LocaleTag/minLength\",keyword:\"minLength\",params:{limit: 2},message:\"must NOT have fewer than 2 characters\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(!pattern5.test(data0)){const err4 = {instancePath:instancePath+\"/defaultLocale\",schemaPath:\"#/$defs/LocaleTag/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}else {const err5 = {instancePath:instancePath+\"/defaultLocale\",schemaPath:\"#/$defs/LocaleTag/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}if(data.fallbackLocale !== undefined){let data1 = data.fallbackLocale;if(typeof data1 === \"string\"){if(func2(data1) > 35){const err6 = {instancePath:instancePath+\"/fallbackLocale\",schemaPath:\"#/$defs/LocaleTag/maxLength\",keyword:\"maxLength\",params:{limit: 35},message:\"must NOT have more than 35 characters\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}if(func2(data1) < 2){const err7 = {instancePath:instancePath+\"/fallbackLocale\",schemaPath:\"#/$defs/LocaleTag/minLength\",keyword:\"minLength\",params:{limit: 2},message:\"must NOT have fewer than 2 characters\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}if(!pattern5.test(data1)){const err8 = {instancePath:instancePath+\"/fallbackLocale\",schemaPath:\"#/$defs/LocaleTag/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}else {const err9 = {instancePath:instancePath+\"/fallbackLocale\",schemaPath:\"#/$defs/LocaleTag/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}if(data.availableLocales !== undefined){let data2 = data.availableLocales;if(Array.isArray(data2)){if(data2.length > 50){const err10 = {instancePath:instancePath+\"/availableLocales\",schemaPath:\"#/properties/availableLocales/maxItems\",keyword:\"maxItems\",params:{limit: 50},message:\"must NOT have more than 50 items\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}if(data2.length < 1){const err11 = {instancePath:instancePath+\"/availableLocales\",schemaPath:\"#/properties/availableLocales/minItems\",keyword:\"minItems\",params:{limit: 1},message:\"must NOT have fewer than 1 items\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}const len0 = data2.length;for(let i0=0; i0<len0; i0++){let data3 = data2[i0];if(typeof data3 === \"string\"){if(func2(data3) > 35){const err12 = {instancePath:instancePath+\"/availableLocales/\" + i0,schemaPath:\"#/$defs/LocaleTag/maxLength\",keyword:\"maxLength\",params:{limit: 35},message:\"must NOT have more than 35 characters\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}if(func2(data3) < 2){const err13 = {instancePath:instancePath+\"/availableLocales/\" + i0,schemaPath:\"#/$defs/LocaleTag/minLength\",keyword:\"minLength\",params:{limit: 2},message:\"must NOT have fewer than 2 characters\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}if(!pattern5.test(data3)){const err14 = {instancePath:instancePath+\"/availableLocales/\" + i0,schemaPath:\"#/$defs/LocaleTag/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}else {const err15 = {instancePath:instancePath+\"/availableLocales/\" + i0,schemaPath:\"#/$defs/LocaleTag/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}let i1 = data2.length;let j0;if(i1 > 1){outer0:for(;i1--;){for(j0 = i1; j0--;){if(func0(data2[i1], data2[j0])){const err16 = {instancePath:instancePath+\"/availableLocales\",schemaPath:\"#/properties/availableLocales/uniqueItems\",keyword:\"uniqueItems\",params:{i: i1, j: j0},message:\"must NOT have duplicate items (items ## \"+j0+\" and \"+i1+\" are identical)\"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;break outer0;}}}}}else {const err17 = {instancePath:instancePath+\"/availableLocales\",schemaPath:\"#/properties/availableLocales/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}if(data.theme !== undefined){let data4 = data.theme;if(typeof data4 === \"string\"){if(func2(data4) > 64){const err18 = {instancePath:instancePath+\"/theme\",schemaPath:\"#/properties/theme/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}if(func2(data4) < 1){const err19 = {instancePath:instancePath+\"/theme\",schemaPath:\"#/properties/theme/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}else {const err20 = {instancePath:instancePath+\"/theme\",schemaPath:\"#/properties/theme/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}if(data.showPoweredBy !== undefined){if(typeof data.showPoweredBy !== \"boolean\"){const err21 = {instancePath:instancePath+\"/showPoweredBy\",schemaPath:\"#/properties/showPoweredBy/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}if(data.enableJsonLd !== undefined){if(typeof data.enableJsonLd !== \"boolean\"){const err22 = {instancePath:instancePath+\"/enableJsonLd\",schemaPath:\"#/properties/enableJsonLd/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}if(data.enableApi !== undefined){if(typeof data.enableApi !== \"boolean\"){const err23 = {instancePath:instancePath+\"/enableApi\",schemaPath:\"#/properties/enableApi/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}if(data.enableAnalytics !== undefined){if(typeof data.enableAnalytics !== \"boolean\"){const err24 = {instancePath:instancePath+\"/enableAnalytics\",schemaPath:\"#/properties/enableAnalytics/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}}else {const err25 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}validate62.errors = vErrors;return errors === 0;}validate62.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema157 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"contentLicense\"],\"properties\":{\"createdAt\":{\"$ref\":\"#/$defs/IsoDateTime\"},\"updatedAt\":{\"$ref\":\"#/$defs/IsoDateTime\"},\"generator\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100,\"description\":\"Tool that produced this document (e.g. 'Takuhon', 'create-takuhon@0.1.0').\"},\"contentLicense\":{\"$ref\":\"#/$defs/ContentLicense\"},\"privacy\":{\"$ref\":\"#/$defs/MetaPrivacy\"}}};const schema158 = {\"type\":\"string\",\"format\":\"date-time\",\"description\":\"ISO 8601 date-time (e.g., 2026-05-11T12:34:56Z).\"};const schema163 = {\"type\":\"object\",\"additionalProperties\":true,\"description\":\"Opt-out flags that strip personally identifying fields from public API output (GET /api/profile, /api/jsonld, /takuhon.json). Admin endpoints (PUT /api/admin/*, GET /api/admin/export) ignore these flags. Privacy-by-default: omitting the object or individual flags is equivalent to true.\",\"properties\":{\"hideCredentialIds\":{\"type\":\"boolean\",\"default\":true,\"description\":\"When true (default), strip certifications[*].credentialId from public responses.\"},\"hideEducationGrades\":{\"type\":\"boolean\",\"default\":true,\"description\":\"When true (default), strip education[*].grade from public responses.\"}}};const formats36 = require(\"ajv-formats/dist/formats\").fullFormats[\"date-time\"];const schema160 = {\"type\":\"object\",\"additionalProperties\":false,\"required\":[\"spdxId\"],\"properties\":{\"spdxId\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":64,\"description\":\"SPDX identifier (e.g., 'CC-BY-4.0', 'CC0-1.0') or 'Proprietary'. No default; the profile owner must choose explicitly.\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"attribution\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":200},\"url\":{\"$ref\":\"#/$defs/Url\"}}},\"rights\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":1000,\"description\":\"Free-form rights statement (used when spdxId='Proprietary' or for additional notices).\"}}};function validate65(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate65.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.spdxId === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"spdxId\"},message:\"must have required property '\"+\"spdxId\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}for(const key0 in data){if(!((((key0 === \"spdxId\") || (key0 === \"url\")) || (key0 === \"attribution\")) || (key0 === \"rights\"))){const err1 = {instancePath,schemaPath:\"#/additionalProperties\",keyword:\"additionalProperties\",params:{additionalProperty: key0},message:\"must NOT have additional properties\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}if(data.spdxId !== undefined){let data0 = data.spdxId;if(typeof data0 === \"string\"){if(func2(data0) > 64){const err2 = {instancePath:instancePath+\"/spdxId\",schemaPath:\"#/properties/spdxId/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(func2(data0) < 1){const err3 = {instancePath:instancePath+\"/spdxId\",schemaPath:\"#/properties/spdxId/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}else {const err4 = {instancePath:instancePath+\"/spdxId\",schemaPath:\"#/properties/spdxId/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}if(data.url !== undefined){let data1 = data.url;if(typeof data1 === \"string\"){if(func2(data1) > 2048){const err5 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(!(formats2(data1))){const err6 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}else {const err7 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}if(data.attribution !== undefined){let data2 = data.attribution;if(data2 && typeof data2 == \"object\" && !Array.isArray(data2)){for(const key1 in data2){if(!((key1 === \"name\") || (key1 === \"url\"))){const err8 = {instancePath:instancePath+\"/attribution\",schemaPath:\"#/properties/attribution/additionalProperties\",keyword:\"additionalProperties\",params:{additionalProperty: key1},message:\"must NOT have additional properties\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}if(data2.name !== undefined){let data3 = data2.name;if(typeof data3 === \"string\"){if(func2(data3) > 200){const err9 = {instancePath:instancePath+\"/attribution/name\",schemaPath:\"#/properties/attribution/properties/name/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}if(func2(data3) < 1){const err10 = {instancePath:instancePath+\"/attribution/name\",schemaPath:\"#/properties/attribution/properties/name/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}else {const err11 = {instancePath:instancePath+\"/attribution/name\",schemaPath:\"#/properties/attribution/properties/name/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}if(data2.url !== undefined){let data4 = data2.url;if(typeof data4 === \"string\"){if(func2(data4) > 2048){const err12 = {instancePath:instancePath+\"/attribution/url\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}if(!(formats2(data4))){const err13 = {instancePath:instancePath+\"/attribution/url\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}else {const err14 = {instancePath:instancePath+\"/attribution/url\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}}else {const err15 = {instancePath:instancePath+\"/attribution\",schemaPath:\"#/properties/attribution/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}if(data.rights !== undefined){let data5 = data.rights;if(typeof data5 === \"string\"){if(func2(data5) > 1000){const err16 = {instancePath:instancePath+\"/rights\",schemaPath:\"#/properties/rights/maxLength\",keyword:\"maxLength\",params:{limit: 1000},message:\"must NOT have more than 1000 characters\"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}if(func2(data5) < 1){const err17 = {instancePath:instancePath+\"/rights\",schemaPath:\"#/properties/rights/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}else {const err18 = {instancePath:instancePath+\"/rights\",schemaPath:\"#/properties/rights/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}}else {const err19 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}validate65.errors = vErrors;return errors === 0;}validate65.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};function validate64(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate64.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.contentLicense === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"contentLicense\"},message:\"must have required property '\"+\"contentLicense\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.createdAt !== undefined){let data0 = data.createdAt;if(typeof data0 === \"string\"){if(!(formats36.validate(data0))){const err1 = {instancePath:instancePath+\"/createdAt\",schemaPath:\"#/$defs/IsoDateTime/format\",keyword:\"format\",params:{format: \"date-time\"},message:\"must match format \\\"\"+\"date-time\"+\"\\\"\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}else {const err2 = {instancePath:instancePath+\"/createdAt\",schemaPath:\"#/$defs/IsoDateTime/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}if(data.updatedAt !== undefined){let data1 = data.updatedAt;if(typeof data1 === \"string\"){if(!(formats36.validate(data1))){const err3 = {instancePath:instancePath+\"/updatedAt\",schemaPath:\"#/$defs/IsoDateTime/format\",keyword:\"format\",params:{format: \"date-time\"},message:\"must match format \\\"\"+\"date-time\"+\"\\\"\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}else {const err4 = {instancePath:instancePath+\"/updatedAt\",schemaPath:\"#/$defs/IsoDateTime/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}if(data.generator !== undefined){let data2 = data.generator;if(typeof data2 === \"string\"){if(func2(data2) > 100){const err5 = {instancePath:instancePath+\"/generator\",schemaPath:\"#/properties/generator/maxLength\",keyword:\"maxLength\",params:{limit: 100},message:\"must NOT have more than 100 characters\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(func2(data2) < 1){const err6 = {instancePath:instancePath+\"/generator\",schemaPath:\"#/properties/generator/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}else {const err7 = {instancePath:instancePath+\"/generator\",schemaPath:\"#/properties/generator/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}if(data.contentLicense !== undefined){if(!(validate65(data.contentLicense, {instancePath:instancePath+\"/contentLicense\",parentData:data,parentDataProperty:\"contentLicense\",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate65.errors : vErrors.concat(validate65.errors);errors = vErrors.length;}}if(data.privacy !== undefined){let data4 = data.privacy;if(data4 && typeof data4 == \"object\" && !Array.isArray(data4)){if(data4.hideCredentialIds !== undefined){if(typeof data4.hideCredentialIds !== \"boolean\"){const err8 = {instancePath:instancePath+\"/privacy/hideCredentialIds\",schemaPath:\"#/$defs/MetaPrivacy/properties/hideCredentialIds/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}if(data4.hideEducationGrades !== undefined){if(typeof data4.hideEducationGrades !== \"boolean\"){const err9 = {instancePath:instancePath+\"/privacy/hideEducationGrades\",schemaPath:\"#/$defs/MetaPrivacy/properties/hideEducationGrades/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}}else {const err10 = {instancePath:instancePath+\"/privacy\",schemaPath:\"#/$defs/MetaPrivacy/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}}else {const err11 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}validate64.errors = vErrors;return errors === 0;}validate64.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};function validate20(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL=\"https://takuhon.example/schemas/0.4.0/takuhon.schema.json\" */;let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.schemaVersion === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"schemaVersion\"},message:\"must have required property '\"+\"schemaVersion\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.profile === undefined){const err1 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"profile\"},message:\"must have required property '\"+\"profile\"+\"'\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.links === undefined){const err2 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"links\"},message:\"must have required property '\"+\"links\"+\"'\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.careers === undefined){const err3 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"careers\"},message:\"must have required property '\"+\"careers\"+\"'\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data.projects === undefined){const err4 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"projects\"},message:\"must have required property '\"+\"projects\"+\"'\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(data.skills === undefined){const err5 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"skills\"},message:\"must have required property '\"+\"skills\"+\"'\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(data.contact === undefined){const err6 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"contact\"},message:\"must have required property '\"+\"contact\"+\"'\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}if(data.settings === undefined){const err7 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"settings\"},message:\"must have required property '\"+\"settings\"+\"'\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}if(data.meta === undefined){const err8 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"meta\"},message:\"must have required property '\"+\"meta\"+\"'\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}for(const key0 in data){if(!(func1.call(schema31.properties, key0))){const err9 = {instancePath,schemaPath:\"#/additionalProperties\",keyword:\"additionalProperties\",params:{additionalProperty: key0},message:\"must NOT have additional properties\"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}if(data.schemaVersion !== undefined){let data0 = data.schemaVersion;if(typeof data0 === \"string\"){if(!pattern4.test(data0)){const err10 = {instancePath:instancePath+\"/schemaVersion\",schemaPath:\"#/properties/schemaVersion/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]+\\\\.[0-9]+\\\\.[0-9]+(-[a-zA-Z0-9.-]+)?$\"},message:\"must match pattern \\\"\"+\"^[0-9]+\\\\.[0-9]+\\\\.[0-9]+(-[a-zA-Z0-9.-]+)?$\"+\"\\\"\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}else {const err11 = {instancePath:instancePath+\"/schemaVersion\",schemaPath:\"#/properties/schemaVersion/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}if(data.profile !== undefined){if(!(validate21(data.profile, {instancePath:instancePath+\"/profile\",parentData:data,parentDataProperty:\"profile\",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate21.errors : vErrors.concat(validate21.errors);errors = vErrors.length;}}if(data.links !== undefined){let data2 = data.links;if(Array.isArray(data2)){if(data2.length > 100){const err12 = {instancePath:instancePath+\"/links\",schemaPath:\"#/properties/links/maxItems\",keyword:\"maxItems\",params:{limit: 100},message:\"must NOT have more than 100 items\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}const len0 = data2.length;for(let i0=0; i0<len0; i0++){if(!(validate27(data2[i0], {instancePath:instancePath+\"/links/\" + i0,parentData:data2,parentDataProperty:i0,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate27.errors : vErrors.concat(validate27.errors);errors = vErrors.length;}}}else {const err13 = {instancePath:instancePath+\"/links\",schemaPath:\"#/properties/links/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}if(data.careers !== undefined){let data4 = data.careers;if(Array.isArray(data4)){if(data4.length > 50){const err14 = {instancePath:instancePath+\"/careers\",schemaPath:\"#/properties/careers/maxItems\",keyword:\"maxItems\",params:{limit: 50},message:\"must NOT have more than 50 items\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}const len1 = data4.length;for(let i1=0; i1<len1; i1++){if(!(validate29(data4[i1], {instancePath:instancePath+\"/careers/\" + i1,parentData:data4,parentDataProperty:i1,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate29.errors : vErrors.concat(validate29.errors);errors = vErrors.length;}}}else {const err15 = {instancePath:instancePath+\"/careers\",schemaPath:\"#/properties/careers/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}if(data.projects !== undefined){let data6 = data.projects;if(Array.isArray(data6)){if(data6.length > 100){const err16 = {instancePath:instancePath+\"/projects\",schemaPath:\"#/properties/projects/maxItems\",keyword:\"maxItems\",params:{limit: 100},message:\"must NOT have more than 100 items\"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}const len2 = data6.length;for(let i2=0; i2<len2; i2++){if(!(validate32(data6[i2], {instancePath:instancePath+\"/projects/\" + i2,parentData:data6,parentDataProperty:i2,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate32.errors : vErrors.concat(validate32.errors);errors = vErrors.length;}}}else {const err17 = {instancePath:instancePath+\"/projects\",schemaPath:\"#/properties/projects/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}if(data.skills !== undefined){let data8 = data.skills;if(Array.isArray(data8)){if(data8.length > 200){const err18 = {instancePath:instancePath+\"/skills\",schemaPath:\"#/properties/skills/maxItems\",keyword:\"maxItems\",params:{limit: 200},message:\"must NOT have more than 200 items\"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}const len3 = data8.length;for(let i3=0; i3<len3; i3++){if(!(validate34(data8[i3], {instancePath:instancePath+\"/skills/\" + i3,parentData:data8,parentDataProperty:i3,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate34.errors : vErrors.concat(validate34.errors);errors = vErrors.length;}}}else {const err19 = {instancePath:instancePath+\"/skills\",schemaPath:\"#/properties/skills/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}if(data.certifications !== undefined){let data10 = data.certifications;if(Array.isArray(data10)){if(data10.length > 50){const err20 = {instancePath:instancePath+\"/certifications\",schemaPath:\"#/properties/certifications/maxItems\",keyword:\"maxItems\",params:{limit: 50},message:\"must NOT have more than 50 items\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}const len4 = data10.length;for(let i4=0; i4<len4; i4++){if(!(validate36(data10[i4], {instancePath:instancePath+\"/certifications/\" + i4,parentData:data10,parentDataProperty:i4,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate36.errors : vErrors.concat(validate36.errors);errors = vErrors.length;}}}else {const err21 = {instancePath:instancePath+\"/certifications\",schemaPath:\"#/properties/certifications/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}if(data.memberships !== undefined){let data12 = data.memberships;if(Array.isArray(data12)){if(data12.length > 50){const err22 = {instancePath:instancePath+\"/memberships\",schemaPath:\"#/properties/memberships/maxItems\",keyword:\"maxItems\",params:{limit: 50},message:\"must NOT have more than 50 items\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}const len5 = data12.length;for(let i5=0; i5<len5; i5++){if(!(validate38(data12[i5], {instancePath:instancePath+\"/memberships/\" + i5,parentData:data12,parentDataProperty:i5,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate38.errors : vErrors.concat(validate38.errors);errors = vErrors.length;}}}else {const err23 = {instancePath:instancePath+\"/memberships\",schemaPath:\"#/properties/memberships/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}if(data.volunteering !== undefined){let data14 = data.volunteering;if(Array.isArray(data14)){if(data14.length > 50){const err24 = {instancePath:instancePath+\"/volunteering\",schemaPath:\"#/properties/volunteering/maxItems\",keyword:\"maxItems\",params:{limit: 50},message:\"must NOT have more than 50 items\"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}const len6 = data14.length;for(let i6=0; i6<len6; i6++){if(!(validate40(data14[i6], {instancePath:instancePath+\"/volunteering/\" + i6,parentData:data14,parentDataProperty:i6,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate40.errors : vErrors.concat(validate40.errors);errors = vErrors.length;}}}else {const err25 = {instancePath:instancePath+\"/volunteering\",schemaPath:\"#/properties/volunteering/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}}if(data.honors !== undefined){let data16 = data.honors;if(Array.isArray(data16)){if(data16.length > 50){const err26 = {instancePath:instancePath+\"/honors\",schemaPath:\"#/properties/honors/maxItems\",keyword:\"maxItems\",params:{limit: 50},message:\"must NOT have more than 50 items\"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}const len7 = data16.length;for(let i7=0; i7<len7; i7++){if(!(validate42(data16[i7], {instancePath:instancePath+\"/honors/\" + i7,parentData:data16,parentDataProperty:i7,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate42.errors : vErrors.concat(validate42.errors);errors = vErrors.length;}}}else {const err27 = {instancePath:instancePath+\"/honors\",schemaPath:\"#/properties/honors/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}}if(data.education !== undefined){let data18 = data.education;if(Array.isArray(data18)){if(data18.length > 30){const err28 = {instancePath:instancePath+\"/education\",schemaPath:\"#/properties/education/maxItems\",keyword:\"maxItems\",params:{limit: 30},message:\"must NOT have more than 30 items\"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}const len8 = data18.length;for(let i8=0; i8<len8; i8++){if(!(validate44(data18[i8], {instancePath:instancePath+\"/education/\" + i8,parentData:data18,parentDataProperty:i8,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate44.errors : vErrors.concat(validate44.errors);errors = vErrors.length;}}}else {const err29 = {instancePath:instancePath+\"/education\",schemaPath:\"#/properties/education/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}}if(data.publications !== undefined){let data20 = data.publications;if(Array.isArray(data20)){if(data20.length > 100){const err30 = {instancePath:instancePath+\"/publications\",schemaPath:\"#/properties/publications/maxItems\",keyword:\"maxItems\",params:{limit: 100},message:\"must NOT have more than 100 items\"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}const len9 = data20.length;for(let i9=0; i9<len9; i9++){if(!(validate46(data20[i9], {instancePath:instancePath+\"/publications/\" + i9,parentData:data20,parentDataProperty:i9,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);errors = vErrors.length;}}}else {const err31 = {instancePath:instancePath+\"/publications\",schemaPath:\"#/properties/publications/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}}if(data.languages !== undefined){let data22 = data.languages;if(Array.isArray(data22)){if(data22.length > 30){const err32 = {instancePath:instancePath+\"/languages\",schemaPath:\"#/properties/languages/maxItems\",keyword:\"maxItems\",params:{limit: 30},message:\"must NOT have more than 30 items\"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}const len10 = data22.length;for(let i10=0; i10<len10; i10++){if(!(validate48(data22[i10], {instancePath:instancePath+\"/languages/\" + i10,parentData:data22,parentDataProperty:i10,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate48.errors : vErrors.concat(validate48.errors);errors = vErrors.length;}}}else {const err33 = {instancePath:instancePath+\"/languages\",schemaPath:\"#/properties/languages/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}if(data.courses !== undefined){let data24 = data.courses;if(Array.isArray(data24)){if(data24.length > 100){const err34 = {instancePath:instancePath+\"/courses\",schemaPath:\"#/properties/courses/maxItems\",keyword:\"maxItems\",params:{limit: 100},message:\"must NOT have more than 100 items\"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}const len11 = data24.length;for(let i11=0; i11<len11; i11++){if(!(validate50(data24[i11], {instancePath:instancePath+\"/courses/\" + i11,parentData:data24,parentDataProperty:i11,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate50.errors : vErrors.concat(validate50.errors);errors = vErrors.length;}}}else {const err35 = {instancePath:instancePath+\"/courses\",schemaPath:\"#/properties/courses/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}}if(data.patents !== undefined){let data26 = data.patents;if(Array.isArray(data26)){if(data26.length > 50){const err36 = {instancePath:instancePath+\"/patents\",schemaPath:\"#/properties/patents/maxItems\",keyword:\"maxItems\",params:{limit: 50},message:\"must NOT have more than 50 items\"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}const len12 = data26.length;for(let i12=0; i12<len12; i12++){if(!(validate52(data26[i12], {instancePath:instancePath+\"/patents/\" + i12,parentData:data26,parentDataProperty:i12,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate52.errors : vErrors.concat(validate52.errors);errors = vErrors.length;}}}else {const err37 = {instancePath:instancePath+\"/patents\",schemaPath:\"#/properties/patents/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}}if(data.testScores !== undefined){let data28 = data.testScores;if(Array.isArray(data28)){if(data28.length > 30){const err38 = {instancePath:instancePath+\"/testScores\",schemaPath:\"#/properties/testScores/maxItems\",keyword:\"maxItems\",params:{limit: 30},message:\"must NOT have more than 30 items\"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}const len13 = data28.length;for(let i13=0; i13<len13; i13++){if(!(validate54(data28[i13], {instancePath:instancePath+\"/testScores/\" + i13,parentData:data28,parentDataProperty:i13,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate54.errors : vErrors.concat(validate54.errors);errors = vErrors.length;}}}else {const err39 = {instancePath:instancePath+\"/testScores\",schemaPath:\"#/properties/testScores/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}}if(data.recommendations !== undefined){let data30 = data.recommendations;if(Array.isArray(data30)){if(data30.length > 50){const err40 = {instancePath:instancePath+\"/recommendations\",schemaPath:\"#/properties/recommendations/maxItems\",keyword:\"maxItems\",params:{limit: 50},message:\"must NOT have more than 50 items\"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}const len14 = data30.length;for(let i14=0; i14<len14; i14++){if(!(validate56(data30[i14], {instancePath:instancePath+\"/recommendations/\" + i14,parentData:data30,parentDataProperty:i14,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate56.errors : vErrors.concat(validate56.errors);errors = vErrors.length;}}}else {const err41 = {instancePath:instancePath+\"/recommendations\",schemaPath:\"#/properties/recommendations/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;}}if(data.contact !== undefined){if(!(validate60(data.contact, {instancePath:instancePath+\"/contact\",parentData:data,parentDataProperty:\"contact\",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate60.errors : vErrors.concat(validate60.errors);errors = vErrors.length;}}if(data.settings !== undefined){if(!(validate62(data.settings, {instancePath:instancePath+\"/settings\",parentData:data,parentDataProperty:\"settings\",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate62.errors : vErrors.concat(validate62.errors);errors = vErrors.length;}}if(data.meta !== undefined){if(!(validate64(data.meta, {instancePath:instancePath+\"/meta\",parentData:data,parentDataProperty:\"meta\",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate64.errors : vErrors.concat(validate64.errors);errors = vErrors.length;}}}else {const err42 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err42];}else {vErrors.push(err42);}errors++;}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};","{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://takuhon.example/schemas/0.4.0/takuhon.schema.json\",\n \"title\": \"Takuhon Profile\",\n \"description\": \"Portable profile data format consumed by @takuhon/core. The canonical contract for profile content authored as takuhon.json.\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"schemaVersion\",\n \"profile\",\n \"links\",\n \"careers\",\n \"projects\",\n \"skills\",\n \"contact\",\n \"settings\",\n \"meta\"\n ],\n \"properties\": {\n \"schemaVersion\": {\n \"type\": \"string\",\n \"pattern\": \"^[0-9]+\\\\.[0-9]+\\\\.[0-9]+(-[a-zA-Z0-9.-]+)?$\",\n \"description\": \"Semantic version of the takuhon schema this document conforms to.\"\n },\n \"profile\": { \"$ref\": \"#/$defs/Profile\" },\n \"links\": {\n \"type\": \"array\",\n \"maxItems\": 100,\n \"items\": { \"$ref\": \"#/$defs/Link\" }\n },\n \"careers\": {\n \"type\": \"array\",\n \"maxItems\": 50,\n \"items\": { \"$ref\": \"#/$defs/Career\" }\n },\n \"projects\": {\n \"type\": \"array\",\n \"maxItems\": 100,\n \"items\": { \"$ref\": \"#/$defs/Project\" }\n },\n \"skills\": {\n \"type\": \"array\",\n \"maxItems\": 200,\n \"items\": { \"$ref\": \"#/$defs/Skill\" }\n },\n \"certifications\": {\n \"type\": \"array\",\n \"maxItems\": 50,\n \"items\": { \"$ref\": \"#/$defs/Certification\" }\n },\n \"memberships\": {\n \"type\": \"array\",\n \"maxItems\": 50,\n \"items\": { \"$ref\": \"#/$defs/Membership\" }\n },\n \"volunteering\": {\n \"type\": \"array\",\n \"maxItems\": 50,\n \"items\": { \"$ref\": \"#/$defs/Volunteering\" }\n },\n \"honors\": {\n \"type\": \"array\",\n \"maxItems\": 50,\n \"items\": { \"$ref\": \"#/$defs/Honor\" }\n },\n \"education\": {\n \"type\": \"array\",\n \"maxItems\": 30,\n \"items\": { \"$ref\": \"#/$defs/Education\" }\n },\n \"publications\": {\n \"type\": \"array\",\n \"maxItems\": 100,\n \"items\": { \"$ref\": \"#/$defs/Publication\" }\n },\n \"languages\": {\n \"type\": \"array\",\n \"maxItems\": 30,\n \"items\": { \"$ref\": \"#/$defs/Language\" }\n },\n \"courses\": {\n \"type\": \"array\",\n \"maxItems\": 100,\n \"items\": { \"$ref\": \"#/$defs/Course\" }\n },\n \"patents\": {\n \"type\": \"array\",\n \"maxItems\": 50,\n \"items\": { \"$ref\": \"#/$defs/Patent\" }\n },\n \"testScores\": {\n \"type\": \"array\",\n \"maxItems\": 30,\n \"items\": { \"$ref\": \"#/$defs/TestScore\" }\n },\n \"recommendations\": {\n \"type\": \"array\",\n \"maxItems\": 50,\n \"items\": { \"$ref\": \"#/$defs/Recommendation\" }\n },\n \"contact\": { \"$ref\": \"#/$defs/Contact\" },\n \"settings\": { \"$ref\": \"#/$defs/Settings\" },\n \"meta\": { \"$ref\": \"#/$defs/Meta\" }\n },\n \"$defs\": {\n \"LocaleTag\": {\n \"type\": \"string\",\n \"minLength\": 2,\n \"maxLength\": 35,\n \"pattern\": \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\",\n \"description\": \"BCP-47 language tag (e.g., 'en', 'ja', 'zh-Hant', 'pt-BR').\"\n },\n \"Iso3166Alpha2\": {\n \"type\": \"string\",\n \"pattern\": \"^[A-Z]{2}$\",\n \"description\": \"ISO 3166-1 alpha-2 country code (uppercase, two letters).\"\n },\n \"YearMonth\": {\n \"type\": \"string\",\n \"pattern\": \"^[0-9]{4}-(0[1-9]|1[0-2])$\",\n \"description\": \"Year-month in 'YYYY-MM' format (Gregorian calendar).\"\n },\n \"IsoDateTime\": {\n \"type\": \"string\",\n \"format\": \"date-time\",\n \"description\": \"ISO 8601 date-time (e.g., 2026-05-11T12:34:56Z).\"\n },\n \"Url\": {\n \"type\": \"string\",\n \"format\": \"uri\",\n \"maxLength\": 2048\n },\n \"Email\": {\n \"type\": \"string\",\n \"format\": \"email\",\n \"maxLength\": 254\n },\n \"Slug\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 64,\n \"pattern\": \"^[a-z0-9][a-z0-9-]*$\",\n \"description\": \"URL-safe identifier (lowercase alphanumerics and hyphens, must start with alphanumeric).\"\n },\n \"LocalizedTitle\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"propertyNames\": {\n \"type\": \"string\",\n \"pattern\": \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"\n },\n \"additionalProperties\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 200\n },\n \"description\": \"Map of BCP-47 locale tag to short title-like string (max 200 chars per value).\"\n },\n \"LocalizedBody\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"propertyNames\": {\n \"type\": \"string\",\n \"pattern\": \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"\n },\n \"additionalProperties\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 5000\n },\n \"description\": \"Map of BCP-47 locale tag to body-length string (max 5000 chars per value).\"\n },\n \"LinkType\": {\n \"type\": \"string\",\n \"enum\": [\n \"website\",\n \"blog\",\n \"github\",\n \"gitlab\",\n \"linkedin\",\n \"x\",\n \"mastodon\",\n \"bluesky\",\n \"instagram\",\n \"youtube\",\n \"threads\",\n \"facebook\",\n \"email\",\n \"rss\",\n \"custom\"\n ],\n \"description\": \"Identifies the kind of link. 'custom' requires iconUrl.\"\n },\n \"Profile\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"displayName\"],\n \"properties\": {\n \"displayName\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"tagline\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"bio\": { \"$ref\": \"#/$defs/LocalizedBody\" },\n \"avatar\": { \"$ref\": \"#/$defs/Avatar\" },\n \"location\": { \"$ref\": \"#/$defs/Address\" }\n }\n },\n \"Avatar\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"url\"],\n \"properties\": {\n \"url\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\",\n \"maxLength\": 2048,\n \"description\": \"URL or path to the avatar image.\"\n },\n \"alt\": { \"$ref\": \"#/$defs/LocalizedTitle\" }\n }\n },\n \"Address\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"properties\": {\n \"country\": { \"$ref\": \"#/$defs/Iso3166Alpha2\" },\n \"region\": { \"type\": \"string\", \"maxLength\": 100 },\n \"locality\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"display\": { \"$ref\": \"#/$defs/LocalizedTitle\" }\n }\n },\n \"Link\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"id\", \"type\", \"url\"],\n \"properties\": {\n \"id\": { \"$ref\": \"#/$defs/Slug\" },\n \"type\": { \"$ref\": \"#/$defs/LinkType\" },\n \"label\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"url\": { \"$ref\": \"#/$defs/Url\" },\n \"featured\": { \"type\": \"boolean\" },\n \"order\": { \"type\": \"integer\", \"minimum\": 0 },\n \"iconUrl\": { \"$ref\": \"#/$defs/Url\" }\n },\n \"allOf\": [\n {\n \"if\": {\n \"properties\": { \"type\": { \"const\": \"custom\" } },\n \"required\": [\"type\"]\n },\n \"then\": {\n \"properties\": { \"iconUrl\": { \"$ref\": \"#/$defs/Url\" } },\n \"required\": [\"iconUrl\"]\n }\n }\n ]\n },\n \"Career\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"id\", \"organization\", \"role\", \"startDate\"],\n \"properties\": {\n \"id\": { \"$ref\": \"#/$defs/Slug\" },\n \"organization\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"role\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"description\": { \"$ref\": \"#/$defs/LocalizedBody\" },\n \"startDate\": { \"$ref\": \"#/$defs/YearMonth\" },\n \"endDate\": {\n \"anyOf\": [{ \"$ref\": \"#/$defs/YearMonth\" }, { \"type\": \"null\" }]\n },\n \"isCurrent\": { \"type\": \"boolean\" },\n \"url\": { \"$ref\": \"#/$defs/Url\" },\n \"location\": { \"$ref\": \"#/$defs/Address\" },\n \"order\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"Project\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"id\", \"title\"],\n \"properties\": {\n \"id\": { \"$ref\": \"#/$defs/Slug\" },\n \"title\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"description\": { \"$ref\": \"#/$defs/LocalizedBody\" },\n \"url\": { \"$ref\": \"#/$defs/Url\" },\n \"tags\": {\n \"type\": \"array\",\n \"maxItems\": 30,\n \"items\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 50 }\n },\n \"relatedCareerId\": { \"$ref\": \"#/$defs/Slug\" },\n \"startDate\": { \"$ref\": \"#/$defs/YearMonth\" },\n \"endDate\": {\n \"anyOf\": [{ \"$ref\": \"#/$defs/YearMonth\" }, { \"type\": \"null\" }]\n },\n \"highlighted\": { \"type\": \"boolean\" },\n \"order\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"Skill\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"id\", \"label\"],\n \"properties\": {\n \"id\": { \"$ref\": \"#/$defs/Slug\" },\n \"label\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 100 },\n \"category\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 64,\n \"description\": \"Recommended values (extensible): programming, design, business, communication, language, music, art, sports, other.\"\n },\n \"order\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"Contact\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"properties\": {\n \"email\": { \"$ref\": \"#/$defs/Email\" },\n \"showEmail\": { \"type\": \"boolean\", \"default\": false },\n \"formUrl\": { \"$ref\": \"#/$defs/Url\" }\n }\n },\n \"Settings\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"defaultLocale\", \"availableLocales\"],\n \"properties\": {\n \"defaultLocale\": { \"$ref\": \"#/$defs/LocaleTag\" },\n \"fallbackLocale\": { \"$ref\": \"#/$defs/LocaleTag\" },\n \"availableLocales\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"maxItems\": 50,\n \"uniqueItems\": true,\n \"items\": { \"$ref\": \"#/$defs/LocaleTag\" }\n },\n \"theme\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 64,\n \"description\": \"UI theme identifier. 'default' is the built-in theme; adapters may add more.\"\n },\n \"showPoweredBy\": {\n \"type\": \"boolean\",\n \"default\": true,\n \"description\": \"Display the 'Powered by takuhon' attribution in the rendered profile.\"\n },\n \"enableJsonLd\": {\n \"type\": \"boolean\",\n \"default\": true,\n \"description\": \"Emit Schema.org JSON-LD on the rendered profile page.\"\n },\n \"enableApi\": {\n \"type\": \"boolean\",\n \"default\": true,\n \"description\": \"Expose the public read API endpoints (GET /api/profile, /api/jsonld, /api/schema, /takuhon.json).\"\n },\n \"enableAnalytics\": {\n \"type\": \"boolean\",\n \"default\": false,\n \"description\": \"Opt-in flag for first-party analytics. Default is false to keep takuhon privacy-respecting by default.\"\n }\n }\n },\n \"Meta\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"contentLicense\"],\n \"properties\": {\n \"createdAt\": { \"$ref\": \"#/$defs/IsoDateTime\" },\n \"updatedAt\": { \"$ref\": \"#/$defs/IsoDateTime\" },\n \"generator\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 100,\n \"description\": \"Tool that produced this document (e.g. 'Takuhon', 'create-takuhon@0.1.0').\"\n },\n \"contentLicense\": { \"$ref\": \"#/$defs/ContentLicense\" },\n \"privacy\": { \"$ref\": \"#/$defs/MetaPrivacy\" }\n }\n },\n \"ContentLicense\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"spdxId\"],\n \"properties\": {\n \"spdxId\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 64,\n \"description\": \"SPDX identifier (e.g., 'CC-BY-4.0', 'CC0-1.0') or 'Proprietary'. No default; the profile owner must choose explicitly.\"\n },\n \"url\": { \"$ref\": \"#/$defs/Url\" },\n \"attribution\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"name\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 200 },\n \"url\": { \"$ref\": \"#/$defs/Url\" }\n }\n },\n \"rights\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 1000,\n \"description\": \"Free-form rights statement (used when spdxId='Proprietary' or for additional notices).\"\n }\n }\n },\n \"MetaPrivacy\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"description\": \"Opt-out flags that strip personally identifying fields from public API output (GET /api/profile, /api/jsonld, /takuhon.json). Admin endpoints (PUT /api/admin/*, GET /api/admin/export) ignore these flags. Privacy-by-default: omitting the object or individual flags is equivalent to true.\",\n \"properties\": {\n \"hideCredentialIds\": {\n \"type\": \"boolean\",\n \"default\": true,\n \"description\": \"When true (default), strip certifications[*].credentialId from public responses.\"\n },\n \"hideEducationGrades\": {\n \"type\": \"boolean\",\n \"default\": true,\n \"description\": \"When true (default), strip education[*].grade from public responses.\"\n }\n }\n },\n \"Certification\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"id\", \"title\", \"issuingOrganization\", \"issueDate\"],\n \"properties\": {\n \"id\": { \"$ref\": \"#/$defs/Slug\" },\n \"title\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"issuingOrganization\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"issueDate\": { \"$ref\": \"#/$defs/YearMonth\" },\n \"expirationDate\": {\n \"anyOf\": [{ \"$ref\": \"#/$defs/YearMonth\" }, { \"type\": \"null\" }],\n \"description\": \"null = explicitly 'no expiration'. Omit if unknown/unstated.\"\n },\n \"credentialId\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 100,\n \"description\": \"License or certificate number. Public exposure controlled by meta.privacy.hideCredentialIds.\"\n },\n \"url\": { \"$ref\": \"#/$defs/Url\" },\n \"order\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"Membership\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"id\", \"organization\", \"startDate\"],\n \"properties\": {\n \"id\": { \"$ref\": \"#/$defs/Slug\" },\n \"organization\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"role\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"description\": { \"$ref\": \"#/$defs/LocalizedBody\" },\n \"startDate\": { \"$ref\": \"#/$defs/YearMonth\" },\n \"endDate\": {\n \"anyOf\": [{ \"$ref\": \"#/$defs/YearMonth\" }, { \"type\": \"null\" }],\n \"description\": \"null = ongoing. Omit if unknown.\"\n },\n \"isCurrent\": { \"type\": \"boolean\" },\n \"url\": { \"$ref\": \"#/$defs/Url\" },\n \"order\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"Volunteering\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"id\", \"organization\", \"role\", \"startDate\"],\n \"properties\": {\n \"id\": { \"$ref\": \"#/$defs/Slug\" },\n \"organization\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"role\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"cause\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"description\": { \"$ref\": \"#/$defs/LocalizedBody\" },\n \"startDate\": { \"$ref\": \"#/$defs/YearMonth\" },\n \"endDate\": {\n \"anyOf\": [{ \"$ref\": \"#/$defs/YearMonth\" }, { \"type\": \"null\" }]\n },\n \"isCurrent\": { \"type\": \"boolean\" },\n \"url\": { \"$ref\": \"#/$defs/Url\" },\n \"order\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"Honor\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"id\", \"title\", \"issuer\", \"date\"],\n \"properties\": {\n \"id\": { \"$ref\": \"#/$defs/Slug\" },\n \"title\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"issuer\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"description\": { \"$ref\": \"#/$defs/LocalizedBody\" },\n \"date\": { \"$ref\": \"#/$defs/YearMonth\" },\n \"url\": { \"$ref\": \"#/$defs/Url\" },\n \"order\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"Education\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"id\", \"institution\", \"startDate\"],\n \"properties\": {\n \"id\": { \"$ref\": \"#/$defs/Slug\" },\n \"institution\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"degree\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"fieldOfStudy\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"description\": { \"$ref\": \"#/$defs/LocalizedBody\" },\n \"grade\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 50,\n \"description\": \"Free-form grade / class / GPA. Public exposure controlled by meta.privacy.hideEducationGrades.\"\n },\n \"startDate\": { \"$ref\": \"#/$defs/YearMonth\" },\n \"endDate\": {\n \"anyOf\": [{ \"$ref\": \"#/$defs/YearMonth\" }, { \"type\": \"null\" }],\n \"description\": \"null = currently enrolled.\"\n },\n \"isCurrent\": { \"type\": \"boolean\" },\n \"url\": { \"$ref\": \"#/$defs/Url\" },\n \"order\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"Publication\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"id\", \"title\", \"date\"],\n \"properties\": {\n \"id\": { \"$ref\": \"#/$defs/Slug\" },\n \"title\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"publisher\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"description\": { \"$ref\": \"#/$defs/LocalizedBody\" },\n \"date\": { \"$ref\": \"#/$defs/YearMonth\" },\n \"url\": { \"$ref\": \"#/$defs/Url\" },\n \"doi\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 200,\n \"description\": \"DOI identifier (e.g. '10.1145/3548643.3548644'). The full URL goes in 'url'.\"\n },\n \"coAuthors\": {\n \"type\": \"array\",\n \"maxItems\": 50,\n \"items\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 100 },\n \"description\": \"Co-author names in original script. Excludes the profile owner.\"\n },\n \"order\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"Language\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"id\", \"language\", \"proficiency\"],\n \"properties\": {\n \"id\": { \"$ref\": \"#/$defs/Slug\" },\n \"language\": { \"$ref\": \"#/$defs/LocaleTag\" },\n \"displayName\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"proficiency\": {\n \"type\": \"string\",\n \"enum\": [\"native\", \"fluent\", \"professional\", \"intermediate\", \"basic\"],\n \"description\": \"LinkedIn-compatible 5-level proficiency.\"\n },\n \"order\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"Course\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"id\", \"title\"],\n \"properties\": {\n \"id\": { \"$ref\": \"#/$defs/Slug\" },\n \"title\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"provider\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"courseNumber\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 50 },\n \"description\": { \"$ref\": \"#/$defs/LocalizedBody\" },\n \"completionDate\": { \"$ref\": \"#/$defs/YearMonth\" },\n \"certificateUrl\": { \"$ref\": \"#/$defs/Url\" },\n \"relatedEducationId\": {\n \"$ref\": \"#/$defs/Slug\",\n \"description\": \"Optional reference to an education[].id (e.g. for university coursework).\"\n },\n \"order\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"Patent\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"id\", \"title\", \"patentNumber\", \"status\"],\n \"properties\": {\n \"id\": { \"$ref\": \"#/$defs/Slug\" },\n \"title\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"patentNumber\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 100 },\n \"office\": {\n \"type\": \"string\",\n \"maxLength\": 100,\n \"description\": \"Patent office name (e.g. 'USPTO', 'JPO', 'EPO').\"\n },\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\"pending\", \"issued\", \"expired\", \"abandoned\"]\n },\n \"description\": { \"$ref\": \"#/$defs/LocalizedBody\" },\n \"filingDate\": { \"$ref\": \"#/$defs/YearMonth\" },\n \"grantDate\": { \"$ref\": \"#/$defs/YearMonth\" },\n \"url\": { \"$ref\": \"#/$defs/Url\" },\n \"coInventors\": {\n \"type\": \"array\",\n \"maxItems\": 20,\n \"items\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 100 }\n },\n \"order\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"TestScore\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"id\", \"title\", \"score\", \"date\"],\n \"properties\": {\n \"id\": { \"$ref\": \"#/$defs/Slug\" },\n \"title\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"score\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 50,\n \"description\": \"Free-form score string (e.g. '112 / 120', '330', 'N1 Pass', or a percentile). The validator does not interpret its contents.\"\n },\n \"date\": { \"$ref\": \"#/$defs/YearMonth\" },\n \"relatedEducationId\": {\n \"$ref\": \"#/$defs/Slug\",\n \"description\": \"Optional reference to an education[].id (e.g. for a university course exam).\"\n },\n \"description\": { \"$ref\": \"#/$defs/LocalizedBody\" },\n \"url\": { \"$ref\": \"#/$defs/Url\" },\n \"order\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"Recommendation\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"id\", \"body\", \"author\"],\n \"properties\": {\n \"id\": { \"$ref\": \"#/$defs/Slug\" },\n \"body\": { \"$ref\": \"#/$defs/LocalizedBody\" },\n \"author\": { \"$ref\": \"#/$defs/RecommendationAuthor\" },\n \"relationship\": {\n \"$ref\": \"#/$defs/LocalizedTitle\",\n \"description\": \"How the recommender relates to the profile owner (e.g. 'managed directly', 'worked together').\"\n },\n \"date\": { \"$ref\": \"#/$defs/YearMonth\" },\n \"relatedCareerId\": {\n \"$ref\": \"#/$defs/Slug\",\n \"description\": \"Optional reference to a careers[].id (the position the recommendation pertains to).\"\n },\n \"relatedEducationId\": {\n \"$ref\": \"#/$defs/Slug\",\n \"description\": \"Optional reference to an education[].id (e.g. a recommendation from a professor).\"\n },\n \"order\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"RecommendationAuthor\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"name\"],\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 100,\n \"description\": \"Recommender's name, in its original script. Owner-curated; takuhon does not verify it.\"\n },\n \"headline\": {\n \"$ref\": \"#/$defs/LocalizedTitle\",\n \"description\": \"Recommender's title / role / organization at the time of the recommendation.\"\n },\n \"url\": {\n \"$ref\": \"#/$defs/Url\",\n \"description\": \"Link to the recommender's profile, for external verification by the reader.\"\n }\n }\n }\n }\n}\n","/**\n * Re-exports the canonical JSON Schema for takuhon profiles.\n *\n * The schema source of truth lives at `packages/core/takuhon.schema.json`\n * (also distributed via the `@takuhon/core/schema.json` sub-path). This module\n * is the convenient ESM-side entry point for consumers that want to feed it\n * directly to a JSON Schema validator (e.g. Ajv) without a filesystem read.\n */\n\nimport schemaJson from '../takuhon.schema.json' with { type: 'json' };\n\nexport const schema = schemaJson;\nexport type Schema = typeof schemaJson;\n","/**\n * Schema validation for takuhon profile documents.\n *\n * Compiles the canonical {@link import('../takuhon.schema.json')} once at module\n * load and exposes a Result-style {@link validate} that returns either the\n * narrowed {@link Takuhon} value or a list of structured {@link ValidationError}s.\n * The validator is the canonical correctness boundary inside `@takuhon/core`:\n * `normalize` (commit 3) and the API layer (commit 11+) both rely on this\n * function to know the shape they are working with.\n *\n * Design notes:\n * - Returns a discriminated union rather than throwing so callers (CLI,\n * normalize, RFC 7807 Problem Details adapters) can route errors however they\n * like without paying for stack capture on every failure.\n * - Errors carry the RFC 6901 JSON Pointer of the offending value plus the\n * failing Ajv keyword, so consumers can render messages or look up the\n * relevant Spec section without leaking Ajv-specific types.\n * - The Ajv 2020 build is used because the schema declares\n * `$schema: \"https://json-schema.org/draft/2020-12/schema\"`.\n * - The validator is *precompiled* to standalone code at build time\n * (`scripts/generate-validator.mjs`) and imported here, so `validate()`\n * performs no runtime `new Function`/`eval`. That keeps it usable under a\n * strict CSP (`script-src 'self'`, no `'unsafe-eval'`) in the browser admin\n * SPA, and in other eval-restricted runtimes. Regenerate after any schema\n * change via `pnpm --filter @takuhon/core generate` (wired into `prebuild`).\n */\n\nimport type { ErrorObject } from 'ajv';\n\nimport validateTakuhon from './generated/takuhon-validator.cjs';\nimport type { Takuhon } from './types.js';\n\n/**\n * Schema versions this build of `@takuhon/core` accepts directly.\n *\n * The migration registry (Phase 1 commit 6+) will translate older `schemaVersion`\n * values into the current one before validation runs, so this list reflects the\n * versions whose JSON Schema this package literally bundles, not the full\n * support window seen by end users.\n */\nexport const SUPPORTED_SCHEMA_VERSIONS = ['0.1.0', '0.2.0', '0.3.0', '0.4.0'] as const;\n\n/**\n * A single validation failure.\n *\n * The shape is intentionally schema-agnostic: an API layer can adapt it into an\n * RFC 7807 Problem Details payload, a CLI can render the message, and a future\n * spec-section lookup table can join on {@link pointer} to surface\n * documentation references. A `specSection` field will be added in a later\n * commit; this minimal surface is what commit 2 ships.\n */\nexport interface ValidationError {\n /** RFC 6901 JSON Pointer to the offending value, e.g. `\"/links/4/iconUrl\"`. */\n pointer: string;\n /** Human-readable failure description (sourced from Ajv when available). */\n message: string;\n /**\n * The schema keyword that failed: `'required'`, `'enum'`, `'pattern'`,\n * `'additionalProperties'`, `'format'`, `'maxItems'`, `'maxLength'`, etc.\n * The value `'schemaVersion'` is reserved for documents whose\n * `schemaVersion` lies outside {@link SUPPORTED_SCHEMA_VERSIONS}.\n */\n keyword: string;\n /** JSON Pointer into the schema for the failing rule, e.g. `\"#/$defs/Link/required\"`. */\n schemaPointer?: string;\n}\n\n/** Result of {@link validate}. Narrow on `ok` to access `data` or `errors`. */\nexport type ValidationResult =\n | { ok: true; data: Takuhon }\n | { ok: false; errors: ValidationError[] };\n\n/**\n * Validate an arbitrary value against the bundled takuhon schema.\n *\n * @param data unknown JSON-like value (typically parsed from a `takuhon.json` file)\n * @returns A discriminated result. On success `data` is narrowed to {@link Takuhon};\n * on failure `errors` is a non-empty list of {@link ValidationError}s.\n */\nexport function validate(data: unknown): ValidationResult {\n // Pre-Ajv gate: reject anything that is not a plain object so callers get a\n // clearer top-level error than Ajv's cascade of \"must be object\" / property\n // failures when handed an array, null, or a primitive.\n if (typeof data !== 'object' || data === null || Array.isArray(data)) {\n return {\n ok: false,\n errors: [\n {\n pointer: '',\n message: 'takuhon.json must be a JSON object.',\n keyword: 'type',\n },\n ],\n };\n }\n\n // Pre-Ajv gate: reject documents whose schemaVersion sits outside the\n // supported window with a dedicated keyword. Migration (commit 6+) will\n // translate older versions into the current one before reaching this point.\n const candidate = data as { schemaVersion?: unknown };\n if (typeof candidate.schemaVersion === 'string' && !isSupportedVersion(candidate.schemaVersion)) {\n return {\n ok: false,\n errors: [\n {\n pointer: '/schemaVersion',\n message: `schemaVersion \"${candidate.schemaVersion}\" is not in the supported window (${SUPPORTED_SCHEMA_VERSIONS.join(\n ', ',\n )}).`,\n keyword: 'schemaVersion',\n },\n ],\n };\n }\n\n if (validateTakuhon(data)) {\n // The schema marks several top-level arrays as optional for back-compat\n // (the nine added in 0.2.0, `testScores` in 0.3.0, and `recommendations`\n // in 0.4.0). The TypeScript `Takuhon` shape requires them so\n // downstream code never has to check for `undefined`. We clone the\n // caller's input before coercing so a successful validate() never\n // mutates the original — callers can keep referencing the value they\n // passed in. JS preserves insertion order, so new keys land at the end\n // of the cloned object; `normalize()` is responsible for canonical\n // field order.\n const cloned = JSON.parse(JSON.stringify(data)) as Takuhon;\n coerceMissingArrays(cloned);\n\n // Post-Ajv check: `languages[].language` uniqueness. JSON Schema\n // `uniqueItems` only catches whole-object duplicates and cannot enforce\n // by-key uniqueness, so we walk the array here and reject duplicates as\n // a synthetic ValidationError.\n const duplicate = findDuplicateLanguage(cloned.languages);\n if (duplicate !== undefined) {\n return {\n ok: false,\n errors: [\n {\n pointer: `/languages/${duplicate.index}/language`,\n message: `Duplicate languages[].language value \"${duplicate.tag}\" — each entry must declare a unique BCP-47 tag.`,\n keyword: 'uniqueItems',\n },\n ],\n };\n }\n\n return { ok: true, data: cloned };\n }\n\n return {\n ok: false,\n errors: (validateTakuhon.errors ?? []).map(toValidationError),\n };\n}\n\nconst COERCED_ARRAY_KEYS = [\n 'certifications',\n 'memberships',\n 'volunteering',\n 'honors',\n 'education',\n 'publications',\n 'languages',\n 'courses',\n 'patents',\n 'testScores',\n 'recommendations',\n] as const;\n\nfunction coerceMissingArrays(data: Takuhon): void {\n const bag = data as unknown as Record<string, unknown>;\n for (const key of COERCED_ARRAY_KEYS) {\n if (!Array.isArray(bag[key])) {\n bag[key] = [];\n }\n }\n}\n\nfunction findDuplicateLanguage(\n languages: Takuhon['languages'],\n): { index: number; tag: string } | undefined {\n const seen = new Map<string, number>();\n for (let i = 0; i < languages.length; i++) {\n const entry = languages[i];\n if (entry === undefined) continue;\n const key = entry.language.toLowerCase();\n if (seen.has(key)) return { index: i, tag: entry.language };\n seen.set(key, i);\n }\n return undefined;\n}\n\nfunction isSupportedVersion(value: string): boolean {\n return (SUPPORTED_SCHEMA_VERSIONS as readonly string[]).includes(value);\n}\n\nfunction toValidationError(err: ErrorObject): ValidationError {\n let pointer = err.instancePath;\n\n if (err.keyword === 'required') {\n const missing = (err.params as { missingProperty?: unknown }).missingProperty;\n if (typeof missing === 'string') {\n pointer = `${err.instancePath}/${escapePointerSegment(missing)}`;\n }\n } else if (err.keyword === 'additionalProperties') {\n const extra = (err.params as { additionalProperty?: unknown }).additionalProperty;\n if (typeof extra === 'string') {\n pointer = `${err.instancePath}/${escapePointerSegment(extra)}`;\n }\n }\n\n return {\n pointer,\n message: err.message ?? 'Validation failed.',\n keyword: err.keyword,\n schemaPointer: err.schemaPath ? err.schemaPath : undefined,\n };\n}\n\n/** Escape a JSON Pointer segment per RFC 6901 (~ becomes ~0, / becomes ~1). */\nfunction escapePointerSegment(segment: string): string {\n return segment.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n","/**\n * Canonicalize a {@link Takuhon} document into the form downstream consumers\n * (`@takuhon/api`, `@takuhon/ui`, `@takuhon/jsonld`) can rely on without\n * re-checking shape invariants.\n *\n * Two transformations only:\n * - **Empty-entry cleanup** on every localized field (`LocalizedTitle` /\n * `LocalizedBody`): entries whose string value is empty or whitespace-only\n * are removed so that locale fallback works field-by-field. When the\n * cleanup leaves an optional localized map empty, the map itself is\n * removed (the schema requires `minProperties: 1`).\n * - **Stable sort by `order`** on every list field (`links`, `careers`,\n * `projects`, `skills`). Items without an `order` move to the end while\n * preserving their original relative position (ES2019 stable sort).\n *\n * Design notes:\n * - The input is deep-cloned via `structuredClone`; the original is never\n * mutated. Callers may safely keep a reference to the value they passed in.\n * - `normalize` does *not* canonicalize BCP-47 tag casing nor trim string\n * content. The first is covered by the schema's `propertyNames` pattern and\n * `resolveLocale`'s case-insensitive lookup; the second would silently rewrite\n * author input and is out of scope for Phase 1.\n * - `normalize(normalize(x))` deep-equals `normalize(x)` (idempotent), and the\n * output re-validates against `takuhon.schema.json`. Both invariants are\n * enforced by the unit tests.\n */\n\nimport type {\n LocalizedBody,\n LocalizedTitle,\n Takuhon,\n NormalizedTakuhon,\n Profile,\n} from './types.js';\n\n/**\n * Return a normalized copy of `data`.\n *\n * @param data A takuhon document that has already passed {@link validate}.\n * @returns A new {@link NormalizedTakuhon} with localized empties dropped and\n * list fields sorted by `order`.\n */\nexport function normalize(data: Takuhon): NormalizedTakuhon {\n // A takuhon document is structurally pure JSON (string/number/boolean/null +\n // plain objects / arrays — no Date, Map, Set, BigInt, or functions), so a\n // round-trip through JSON gives an equivalent deep clone without depending\n // on `structuredClone`'s global type declaration (which moves between TS\n // `lib.es2022.d.ts` and `lib.dom.d.ts` across TypeScript major releases).\n const out = JSON.parse(JSON.stringify(data)) as Takuhon;\n\n // Defensive: the schema marks several top-level arrays as optional for\n // back-compat (the nine added in 0.2.0, `testScores` in 0.3.0, and\n // `recommendations` in 0.4.0), so a stored older profile read from KV after\n // an upgrade may arrive here without them. The TypeScript `Takuhon` shape\n // requires them; coerce missing values to `[]` so downstream iteration\n // never trips on `undefined`. Idempotent: arrays already present are left\n // untouched.\n const bag = out as unknown as Record<string, unknown>;\n for (const key of NORMALIZED_ARRAYS) {\n if (!Array.isArray(bag[key])) {\n bag[key] = [];\n }\n }\n\n normalizeProfile(out.profile);\n\n for (const link of out.links) {\n cleanOptionalLocalized(link, 'label');\n }\n out.links = stableSortByOrder(out.links);\n\n for (const career of out.careers) {\n cleanRequiredLocalized(career.organization);\n cleanRequiredLocalized(career.role);\n cleanOptionalLocalized(career, 'description');\n }\n out.careers = stableSortByOrder(out.careers);\n\n for (const project of out.projects) {\n cleanRequiredLocalized(project.title);\n cleanOptionalLocalized(project, 'description');\n }\n out.projects = stableSortByOrder(out.projects);\n\n out.skills = stableSortByOrder(out.skills);\n\n for (const cert of out.certifications) {\n cleanRequiredLocalized(cert.title);\n cleanRequiredLocalized(cert.issuingOrganization);\n }\n out.certifications = stableSortByOrder(out.certifications);\n\n for (const m of out.memberships) {\n cleanRequiredLocalized(m.organization);\n cleanOptionalLocalized(m, 'role');\n cleanOptionalLocalized(m, 'description');\n }\n out.memberships = stableSortByOrder(out.memberships);\n\n for (const v of out.volunteering) {\n cleanRequiredLocalized(v.organization);\n cleanRequiredLocalized(v.role);\n cleanOptionalLocalized(v, 'cause');\n cleanOptionalLocalized(v, 'description');\n }\n out.volunteering = stableSortByOrder(out.volunteering);\n\n for (const h of out.honors) {\n cleanRequiredLocalized(h.title);\n cleanRequiredLocalized(h.issuer);\n cleanOptionalLocalized(h, 'description');\n }\n out.honors = stableSortByOrder(out.honors);\n\n for (const e of out.education) {\n cleanRequiredLocalized(e.institution);\n cleanOptionalLocalized(e, 'degree');\n cleanOptionalLocalized(e, 'fieldOfStudy');\n cleanOptionalLocalized(e, 'description');\n }\n out.education = stableSortByOrder(out.education);\n\n for (const p of out.publications) {\n cleanRequiredLocalized(p.title);\n cleanOptionalLocalized(p, 'publisher');\n cleanOptionalLocalized(p, 'description');\n }\n out.publications = stableSortByOrder(out.publications);\n\n for (const l of out.languages) {\n cleanOptionalLocalized(l, 'displayName');\n }\n out.languages = stableSortByOrder(out.languages);\n\n for (const c of out.courses) {\n cleanRequiredLocalized(c.title);\n cleanOptionalLocalized(c, 'provider');\n cleanOptionalLocalized(c, 'description');\n }\n out.courses = stableSortByOrder(out.courses);\n\n for (const p of out.patents) {\n cleanRequiredLocalized(p.title);\n cleanOptionalLocalized(p, 'description');\n }\n out.patents = stableSortByOrder(out.patents);\n\n for (const t of out.testScores) {\n cleanRequiredLocalized(t.title);\n cleanOptionalLocalized(t, 'description');\n }\n out.testScores = stableSortByOrder(out.testScores);\n\n for (const r of out.recommendations) {\n cleanRequiredLocalized(r.body);\n cleanOptionalLocalized(r, 'relationship');\n cleanOptionalLocalized(r.author, 'headline');\n }\n out.recommendations = stableSortByOrder(out.recommendations);\n\n return out;\n}\n\nfunction normalizeProfile(profile: Profile): void {\n cleanRequiredLocalized(profile.displayName);\n cleanOptionalLocalized(profile, 'tagline');\n cleanOptionalLocalized(profile, 'bio');\n if (profile.avatar) {\n cleanOptionalLocalized(profile.avatar, 'alt');\n }\n if (profile.location) {\n cleanOptionalLocalized(profile.location, 'locality');\n cleanOptionalLocalized(profile.location, 'display');\n }\n}\n\n/** Remove empty / whitespace-only entries from a required localized map in place. */\nfunction cleanRequiredLocalized(map: LocalizedTitle | LocalizedBody): void {\n for (const key of Object.keys(map)) {\n const value = map[key];\n if (value === undefined || value.trim() === '') {\n delete map[key];\n }\n }\n}\n\n/**\n * Remove empty / whitespace-only entries from an optional localized map. When\n * the resulting map is empty, the property is removed from its parent so the\n * document remains schema-valid (`LocalizedTitle` / `LocalizedBody` require\n * `minProperties: 1`).\n */\nfunction cleanOptionalLocalized<\n K extends string,\n T extends Partial<Record<K, LocalizedTitle | LocalizedBody>>,\n>(parent: T, key: K): void {\n const map = parent[key];\n if (!map) return;\n for (const k of Object.keys(map)) {\n const value = map[k];\n if (value === undefined || value.trim() === '') {\n delete map[k];\n }\n }\n if (Object.keys(map).length === 0) {\n delete parent[key];\n }\n}\n\n/** Stable sort items by ascending `order`; entries without `order` go last. */\nfunction stableSortByOrder<T extends { order?: number }>(items: T[]): T[] {\n return items.slice().sort((a, b) => {\n const ao = a.order ?? Number.POSITIVE_INFINITY;\n const bo = b.order ?? Number.POSITIVE_INFINITY;\n return ao - bo;\n });\n}\n\nconst NORMALIZED_ARRAYS = [\n 'certifications',\n 'memberships',\n 'volunteering',\n 'honors',\n 'education',\n 'publications',\n 'languages',\n 'courses',\n 'patents',\n 'testScores',\n 'recommendations',\n] as const;\n","/**\n * BCP-47 locale-tag helpers shared by `normalize()` and `resolveLocale()`.\n *\n * These functions intentionally do not depend on `Intl.Locale`: the schema's\n * `propertyNames` pattern already guarantees structural validity for tags that\n * have passed validation, so this module only needs string-level operations\n * (case-insensitive lookup, primary-subtag fallback, simple regex shape check).\n * Keeping the implementation dependency-free also avoids platform differences\n * between Node, Workers, and modern browsers.\n */\n\n/** Same shape as `takuhon.schema.json`'s `propertyNames` for localized maps. */\nconst BCP47_PATTERN = /^[a-zA-Z]{2,3}(-[a-zA-Z0-9]+)*$/;\n\n/**\n * Return whether a string has the structural shape of a BCP-47 tag accepted\n * by `takuhon.schema.json`. This is a syntactic check only — `'zz'` passes\n * because it matches the regex even though it is not a registered subtag.\n * Semantic validity (registered language / region) is intentionally out of\n * scope; consumers that want it should compose `Intl.Locale` on top.\n */\nexport function isValidBcp47(tag: string): boolean {\n return BCP47_PATTERN.test(tag);\n}\n\n/**\n * Expand a tag into a list of progressively shorter candidates by dropping\n * trailing subtags, e.g. `'zh-Hant-TW' → ['zh-Hant-TW', 'zh-Hant', 'zh']`.\n * Returns the input unchanged for single-subtag inputs (`'en' → ['en']`),\n * and returns `[]` for tags that do not match the BCP-47 shape.\n */\nexport function expandRegional(tag: string): string[] {\n if (!isValidBcp47(tag)) return [];\n const parts = tag.split('-');\n const out: string[] = [];\n for (let i = parts.length; i >= 1; i--) {\n out.push(parts.slice(0, i).join('-'));\n }\n return out;\n}\n\n/** Compare two locale tags ignoring ASCII case (`'EN-us'` matches `'en-US'`). */\nexport function localeMatches(a: string, b: string): boolean {\n return a.toLowerCase() === b.toLowerCase();\n}\n\n/**\n * Look up a value from a locale-keyed map ignoring ASCII case.\n *\n * BCP-47 tags use canonical casing (`zh-Hant`, `pt-BR`) but the spec asks for\n * case-insensitive comparison so consumers can query with `EN-us` or `EN-US`\n * regardless of how the document was authored.\n */\nexport function lookupCaseInsensitive<T>(\n map: Record<string, T> | undefined,\n key: string,\n): T | undefined {\n if (!map) return undefined;\n const direct = map[key];\n if (direct !== undefined) return direct;\n const lower = key.toLowerCase();\n for (const k of Object.keys(map)) {\n if (k.toLowerCase() === lower) return map[k];\n }\n return undefined;\n}\n","/**\n * Reduce a multi-locale {@link Takuhon} document to a single requested locale.\n *\n * Builds a flat candidate chain from the function arguments and `data.settings`,\n * expanding each entry's regional subtag (e.g. `'en-US' → ['en-US', 'en']`),\n * deduplicating case-insensitively, then walks the chain **per field**. The\n * first candidate whose value is non-blank wins for that field; an empty entry\n * (`\"\"` / whitespace-only) falls through to the next candidate just like a\n * missing entry. This matches the spec semantics in [api.md §3.4] where empty\n * values are equivalent to absence.\n *\n * Design notes:\n * - Function arguments (`locale`, `fallbackLocale`) take precedence over\n * `settings.*`, in line with the spec's 7-tier list: HTTP-derived locales\n * (#1-#4) are resolved upstream by `@takuhon/api` and arrive here as\n * `locale` / `fallbackLocale`; `settings.defaultLocale` (#5),\n * `settings.fallbackLocale` (#6), and `settings.availableLocales[0]` (#7)\n * fill the tail.\n * - Invalid tags (`'zz_invalid'`, `'_'`, etc.) are silently dropped rather\n * than throwing. Resolution is best-effort: throwing on a malformed\n * `?lang=` query would push error handling responsibilities back into the\n * API layer for a recoverable case.\n * - A final rescue step appends every `availableLocales` entry so a request\n * with no matching candidate still produces a populated document. If even\n * that fails (only possible for hand-crafted inputs that bypassed\n * `validate`), required strings fall back to `''` and the caller's tests\n * catch the document-level regression.\n * - `resolvedLocale` records the tag that produced `profile.displayName`,\n * which is the field most consumers expose as the canonical locale of the\n * response (e.g. `meta.locale` in API responses, `<html lang>` in UI).\n */\n\nimport { expandRegional, isValidBcp47, lookupCaseInsensitive } from './locale-tag.js';\nimport type {\n Address,\n Avatar,\n Career,\n Certification,\n Course,\n Education,\n Honor,\n Language,\n Link,\n LocaleTag,\n LocalizedAddress,\n LocalizedAvatar,\n LocalizedBody,\n LocalizedCareer,\n LocalizedCertification,\n LocalizedCourse,\n LocalizedEducation,\n LocalizedHonor,\n LocalizedLanguage,\n LocalizedLink,\n LocalizedMembership,\n LocalizedPatent,\n LocalizedProfile,\n LocalizedProject,\n LocalizedPublication,\n LocalizedRecommendation,\n LocalizedRecommendationAuthor,\n LocalizedTakuhon,\n LocalizedTestScore,\n LocalizedTitle,\n LocalizedVolunteering,\n Membership,\n Patent,\n Profile,\n Project,\n Publication,\n Recommendation,\n RecommendationAuthor,\n Takuhon,\n TestScore,\n Volunteering,\n} from './types.js';\n\n/**\n * Resolve a takuhon document to a single locale.\n *\n * @param data A takuhon document (validated; ideally normalized first).\n * @param locale Caller-resolved request locale (e.g. from `?lang=` or\n * `Accept-Language`). Invalid tags are ignored.\n * @param fallbackLocale Caller-supplied secondary candidate when `locale`\n * misses. Invalid tags are ignored.\n */\nexport function resolveLocale(\n data: Takuhon,\n locale?: string,\n fallbackLocale?: string,\n): LocalizedTakuhon {\n const candidates = buildCandidates(data, locale, fallbackLocale);\n const displayPick = pickLocalizedWithTag(data.profile.displayName, candidates);\n\n return {\n schemaVersion: data.schemaVersion,\n profile: resolveProfile(data.profile, candidates, displayPick?.value ?? ''),\n links: data.links.map((l) => resolveLink(l, candidates)),\n careers: data.careers.map((c) => resolveCareer(c, candidates)),\n projects: data.projects.map((p) => resolveProject(p, candidates)),\n skills: data.skills,\n certifications: data.certifications.map((c) => resolveCertification(c, candidates)),\n memberships: data.memberships.map((m) => resolveMembership(m, candidates)),\n volunteering: data.volunteering.map((v) => resolveVolunteering(v, candidates)),\n honors: data.honors.map((h) => resolveHonor(h, candidates)),\n education: data.education.map((e) => resolveEducation(e, candidates)),\n publications: data.publications.map((p) => resolvePublication(p, candidates)),\n languages: data.languages.map((l) => resolveLanguage(l, candidates)),\n courses: data.courses.map((c) => resolveCourse(c, candidates)),\n patents: data.patents.map((p) => resolvePatent(p, candidates)),\n testScores: data.testScores.map((t) => resolveTestScore(t, candidates)),\n recommendations: data.recommendations.map((r) => resolveRecommendation(r, candidates)),\n contact: data.contact,\n settings: data.settings,\n meta: data.meta,\n resolvedLocale: displayPick?.tag ?? candidates[0] ?? '',\n };\n}\n\nfunction buildCandidates(\n data: Takuhon,\n locale: string | undefined,\n fallbackLocale: string | undefined,\n): LocaleTag[] {\n const raw: string[] = [];\n if (locale !== undefined) raw.push(...expandRegional(locale));\n if (fallbackLocale !== undefined) raw.push(...expandRegional(fallbackLocale));\n raw.push(...expandRegional(data.settings.defaultLocale));\n if (data.settings.fallbackLocale !== undefined) {\n raw.push(...expandRegional(data.settings.fallbackLocale));\n }\n for (const tag of data.settings.availableLocales) {\n raw.push(...expandRegional(tag));\n }\n return dedupCaseInsensitive(raw);\n}\n\nfunction dedupCaseInsensitive(tags: string[]): string[] {\n const seen = new Set<string>();\n const out: string[] = [];\n for (const tag of tags) {\n if (!isValidBcp47(tag)) continue;\n const lower = tag.toLowerCase();\n if (seen.has(lower)) continue;\n seen.add(lower);\n out.push(tag);\n }\n return out;\n}\n\nfunction pickLocalizedWithTag(\n field: LocalizedTitle | LocalizedBody | undefined,\n candidates: LocaleTag[],\n): { value: string; tag: LocaleTag } | undefined {\n if (!field) return undefined;\n for (const tag of candidates) {\n const hit = lookupCaseInsensitive(field, tag);\n if (hit !== undefined && hit.trim() !== '') {\n return { value: hit, tag };\n }\n }\n return undefined;\n}\n\nfunction pickLocalized(\n field: LocalizedTitle | LocalizedBody | undefined,\n candidates: LocaleTag[],\n): string | undefined {\n return pickLocalizedWithTag(field, candidates)?.value;\n}\n\nfunction resolveProfile(\n profile: Profile,\n candidates: LocaleTag[],\n displayName: string,\n): LocalizedProfile {\n const out: LocalizedProfile = { displayName };\n\n const tagline = pickLocalized(profile.tagline, candidates);\n if (tagline !== undefined) out.tagline = tagline;\n\n const bio = pickLocalized(profile.bio, candidates);\n if (bio !== undefined) out.bio = bio;\n\n if (profile.avatar) out.avatar = resolveAvatar(profile.avatar, candidates);\n if (profile.location) out.location = resolveAddress(profile.location, candidates);\n\n return out;\n}\n\nfunction resolveAvatar(avatar: Avatar, candidates: LocaleTag[]): LocalizedAvatar {\n const out: LocalizedAvatar = { url: avatar.url };\n const alt = pickLocalized(avatar.alt, candidates);\n if (alt !== undefined) out.alt = alt;\n return out;\n}\n\nfunction resolveAddress(address: Address, candidates: LocaleTag[]): LocalizedAddress {\n const out: LocalizedAddress = {};\n if (address.country !== undefined) out.country = address.country;\n if (address.region !== undefined) out.region = address.region;\n const locality = pickLocalized(address.locality, candidates);\n if (locality !== undefined) out.locality = locality;\n const display = pickLocalized(address.display, candidates);\n if (display !== undefined) out.display = display;\n return out;\n}\n\nfunction resolveLink(link: Link, candidates: LocaleTag[]): LocalizedLink {\n const label = pickLocalized(link.label, candidates);\n if (link.type === 'custom') {\n const out: LocalizedLink = {\n id: link.id,\n type: 'custom',\n url: link.url,\n iconUrl: link.iconUrl,\n };\n if (label !== undefined) out.label = label;\n if (link.featured !== undefined) out.featured = link.featured;\n if (link.order !== undefined) out.order = link.order;\n return out;\n }\n const out: LocalizedLink = {\n id: link.id,\n type: link.type,\n url: link.url,\n };\n if (label !== undefined) out.label = label;\n if (link.featured !== undefined) out.featured = link.featured;\n if (link.order !== undefined) out.order = link.order;\n if (link.iconUrl !== undefined) out.iconUrl = link.iconUrl;\n return out;\n}\n\nfunction resolveCareer(career: Career, candidates: LocaleTag[]): LocalizedCareer {\n const out: LocalizedCareer = {\n id: career.id,\n organization: pickLocalized(career.organization, candidates) ?? '',\n role: pickLocalized(career.role, candidates) ?? '',\n startDate: career.startDate,\n };\n const description = pickLocalized(career.description, candidates);\n if (description !== undefined) out.description = description;\n if (career.endDate !== undefined) out.endDate = career.endDate;\n if (career.isCurrent !== undefined) out.isCurrent = career.isCurrent;\n if (career.url !== undefined) out.url = career.url;\n if (career.order !== undefined) out.order = career.order;\n if (career.location) out.location = resolveAddress(career.location, candidates);\n return out;\n}\n\nfunction resolveProject(project: Project, candidates: LocaleTag[]): LocalizedProject {\n const out: LocalizedProject = {\n id: project.id,\n title: pickLocalized(project.title, candidates) ?? '',\n };\n const description = pickLocalized(project.description, candidates);\n if (description !== undefined) out.description = description;\n if (project.url !== undefined) out.url = project.url;\n if (project.tags !== undefined) out.tags = project.tags;\n if (project.relatedCareerId !== undefined) out.relatedCareerId = project.relatedCareerId;\n if (project.startDate !== undefined) out.startDate = project.startDate;\n if (project.endDate !== undefined) out.endDate = project.endDate;\n if (project.highlighted !== undefined) out.highlighted = project.highlighted;\n if (project.order !== undefined) out.order = project.order;\n return out;\n}\n\nfunction resolveCertification(\n cert: Certification,\n candidates: LocaleTag[],\n): LocalizedCertification {\n const out: LocalizedCertification = {\n id: cert.id,\n title: pickLocalized(cert.title, candidates) ?? '',\n issuingOrganization: pickLocalized(cert.issuingOrganization, candidates) ?? '',\n issueDate: cert.issueDate,\n };\n if (cert.expirationDate !== undefined) out.expirationDate = cert.expirationDate;\n if (cert.credentialId !== undefined) out.credentialId = cert.credentialId;\n if (cert.url !== undefined) out.url = cert.url;\n if (cert.order !== undefined) out.order = cert.order;\n return out;\n}\n\nfunction resolveMembership(membership: Membership, candidates: LocaleTag[]): LocalizedMembership {\n const out: LocalizedMembership = {\n id: membership.id,\n organization: pickLocalized(membership.organization, candidates) ?? '',\n startDate: membership.startDate,\n };\n const role = pickLocalized(membership.role, candidates);\n if (role !== undefined) out.role = role;\n const description = pickLocalized(membership.description, candidates);\n if (description !== undefined) out.description = description;\n if (membership.endDate !== undefined) out.endDate = membership.endDate;\n if (membership.isCurrent !== undefined) out.isCurrent = membership.isCurrent;\n if (membership.url !== undefined) out.url = membership.url;\n if (membership.order !== undefined) out.order = membership.order;\n return out;\n}\n\nfunction resolveVolunteering(v: Volunteering, candidates: LocaleTag[]): LocalizedVolunteering {\n const out: LocalizedVolunteering = {\n id: v.id,\n organization: pickLocalized(v.organization, candidates) ?? '',\n role: pickLocalized(v.role, candidates) ?? '',\n startDate: v.startDate,\n };\n const cause = pickLocalized(v.cause, candidates);\n if (cause !== undefined) out.cause = cause;\n const description = pickLocalized(v.description, candidates);\n if (description !== undefined) out.description = description;\n if (v.endDate !== undefined) out.endDate = v.endDate;\n if (v.isCurrent !== undefined) out.isCurrent = v.isCurrent;\n if (v.url !== undefined) out.url = v.url;\n if (v.order !== undefined) out.order = v.order;\n return out;\n}\n\nfunction resolveHonor(honor: Honor, candidates: LocaleTag[]): LocalizedHonor {\n const out: LocalizedHonor = {\n id: honor.id,\n title: pickLocalized(honor.title, candidates) ?? '',\n issuer: pickLocalized(honor.issuer, candidates) ?? '',\n date: honor.date,\n };\n const description = pickLocalized(honor.description, candidates);\n if (description !== undefined) out.description = description;\n if (honor.url !== undefined) out.url = honor.url;\n if (honor.order !== undefined) out.order = honor.order;\n return out;\n}\n\nfunction resolveEducation(edu: Education, candidates: LocaleTag[]): LocalizedEducation {\n const out: LocalizedEducation = {\n id: edu.id,\n institution: pickLocalized(edu.institution, candidates) ?? '',\n startDate: edu.startDate,\n };\n const degree = pickLocalized(edu.degree, candidates);\n if (degree !== undefined) out.degree = degree;\n const fieldOfStudy = pickLocalized(edu.fieldOfStudy, candidates);\n if (fieldOfStudy !== undefined) out.fieldOfStudy = fieldOfStudy;\n const description = pickLocalized(edu.description, candidates);\n if (description !== undefined) out.description = description;\n if (edu.grade !== undefined) out.grade = edu.grade;\n if (edu.endDate !== undefined) out.endDate = edu.endDate;\n if (edu.isCurrent !== undefined) out.isCurrent = edu.isCurrent;\n if (edu.url !== undefined) out.url = edu.url;\n if (edu.order !== undefined) out.order = edu.order;\n return out;\n}\n\nfunction resolvePublication(pub: Publication, candidates: LocaleTag[]): LocalizedPublication {\n const out: LocalizedPublication = {\n id: pub.id,\n title: pickLocalized(pub.title, candidates) ?? '',\n date: pub.date,\n };\n const publisher = pickLocalized(pub.publisher, candidates);\n if (publisher !== undefined) out.publisher = publisher;\n const description = pickLocalized(pub.description, candidates);\n if (description !== undefined) out.description = description;\n if (pub.url !== undefined) out.url = pub.url;\n if (pub.doi !== undefined) out.doi = pub.doi;\n if (pub.coAuthors !== undefined) out.coAuthors = pub.coAuthors;\n if (pub.order !== undefined) out.order = pub.order;\n return out;\n}\n\nfunction resolveLanguage(lang: Language, candidates: LocaleTag[]): LocalizedLanguage {\n const out: LocalizedLanguage = {\n id: lang.id,\n language: lang.language,\n proficiency: lang.proficiency,\n };\n const displayName = pickLocalized(lang.displayName, candidates);\n if (displayName !== undefined) out.displayName = displayName;\n if (lang.order !== undefined) out.order = lang.order;\n return out;\n}\n\nfunction resolveCourse(course: Course, candidates: LocaleTag[]): LocalizedCourse {\n const out: LocalizedCourse = {\n id: course.id,\n title: pickLocalized(course.title, candidates) ?? '',\n };\n const provider = pickLocalized(course.provider, candidates);\n if (provider !== undefined) out.provider = provider;\n if (course.courseNumber !== undefined) out.courseNumber = course.courseNumber;\n const description = pickLocalized(course.description, candidates);\n if (description !== undefined) out.description = description;\n if (course.completionDate !== undefined) out.completionDate = course.completionDate;\n if (course.certificateUrl !== undefined) out.certificateUrl = course.certificateUrl;\n if (course.relatedEducationId !== undefined) out.relatedEducationId = course.relatedEducationId;\n if (course.order !== undefined) out.order = course.order;\n return out;\n}\n\nfunction resolvePatent(patent: Patent, candidates: LocaleTag[]): LocalizedPatent {\n const out: LocalizedPatent = {\n id: patent.id,\n title: pickLocalized(patent.title, candidates) ?? '',\n patentNumber: patent.patentNumber,\n status: patent.status,\n };\n if (patent.office !== undefined) out.office = patent.office;\n const description = pickLocalized(patent.description, candidates);\n if (description !== undefined) out.description = description;\n if (patent.filingDate !== undefined) out.filingDate = patent.filingDate;\n if (patent.grantDate !== undefined) out.grantDate = patent.grantDate;\n if (patent.url !== undefined) out.url = patent.url;\n if (patent.coInventors !== undefined) out.coInventors = patent.coInventors;\n if (patent.order !== undefined) out.order = patent.order;\n return out;\n}\n\nfunction resolveTestScore(testScore: TestScore, candidates: LocaleTag[]): LocalizedTestScore {\n const out: LocalizedTestScore = {\n id: testScore.id,\n title: pickLocalized(testScore.title, candidates) ?? '',\n score: testScore.score,\n date: testScore.date,\n };\n const description = pickLocalized(testScore.description, candidates);\n if (description !== undefined) out.description = description;\n if (testScore.relatedEducationId !== undefined) {\n out.relatedEducationId = testScore.relatedEducationId;\n }\n if (testScore.url !== undefined) out.url = testScore.url;\n if (testScore.order !== undefined) out.order = testScore.order;\n return out;\n}\n\nfunction resolveRecommendation(\n recommendation: Recommendation,\n candidates: LocaleTag[],\n): LocalizedRecommendation {\n const out: LocalizedRecommendation = {\n id: recommendation.id,\n body: pickLocalized(recommendation.body, candidates) ?? '',\n author: resolveRecommendationAuthor(recommendation.author, candidates),\n };\n const relationship = pickLocalized(recommendation.relationship, candidates);\n if (relationship !== undefined) out.relationship = relationship;\n if (recommendation.date !== undefined) out.date = recommendation.date;\n if (recommendation.relatedCareerId !== undefined) {\n out.relatedCareerId = recommendation.relatedCareerId;\n }\n if (recommendation.relatedEducationId !== undefined) {\n out.relatedEducationId = recommendation.relatedEducationId;\n }\n if (recommendation.order !== undefined) out.order = recommendation.order;\n return out;\n}\n\nfunction resolveRecommendationAuthor(\n author: RecommendationAuthor,\n candidates: LocaleTag[],\n): LocalizedRecommendationAuthor {\n const out: LocalizedRecommendationAuthor = { name: author.name };\n const headline = pickLocalized(author.headline, candidates);\n if (headline !== undefined) out.headline = headline;\n if (author.url !== undefined) out.url = author.url;\n return out;\n}\n","/**\n * Generate Schema.org JSON-LD from a {@link LocalizedTakuhon} document.\n *\n * Emits a `ProfilePage` whose `mainEntity` is the `Person` described by the\n * input. Mapping rules follow the published schema.org mapping spec; the\n * relevant invariants are exercised by the unit tests.\n *\n * Design notes:\n * - Input is the output of `resolveLocale()`, so every localized field is\n * already a single string. No locale fallback happens here.\n * - All optional keys are omitted (not set to `null` / `undefined`) when their\n * source value is absent or empty, so consumers can shallow-merge or\n * `JSON.stringify` the result without post-processing.\n * - The canonical URL surfaced as `ProfilePage.url`, `Person.@id`, and\n * `Person.url` is derived from a single `links[]` entry: `type: 'website'`\n * with `featured: true`. The first match wins (stable after `normalize()`).\n * When no such link exists the three URL-bearing keys are omitted entirely;\n * no placeholder is fabricated.\n * - `profile.tagline` is intentionally not surfaced. `description` carries\n * `profile.bio` only, matching the spec exemplar. Phase 2 may revisit.\n * - `contact.email` is surfaced only when `contact.showEmail === true`\n * (privacy by default).\n * - URLs pass through verbatim. Relative paths in the input remain relative\n * in the output; absolutization is the API/UI layer's responsibility.\n * - Field insertion order on each emitted object is fixed so\n * `JSON.stringify(result)` is deterministic for a given input.\n */\n\nimport type {\n Contact,\n LinkType,\n LocalizedAddress,\n LocalizedAvatar,\n LocalizedCareer,\n LocalizedCertification,\n LocalizedCourse,\n LocalizedEducation,\n LocalizedHonor,\n LocalizedLanguage,\n LocalizedLink,\n LocalizedMembership,\n LocalizedPatent,\n LocalizedProject,\n LocalizedPublication,\n LocalizedTakuhon,\n LocalizedVolunteering,\n Skill,\n} from './types.js';\n\n/**\n * `links[].type` values that count as identity-bearing for the purpose of\n * `Person.sameAs`. `email`, `rss`, and `custom` are excluded: they either\n * carry no identity assertion (`custom`) or are not a profile URL on a\n * third-party platform (`email`, `rss`).\n */\nconst SAMEAS_IDENTITY_TYPES: ReadonlySet<LinkType> = new Set<LinkType>([\n 'github',\n 'gitlab',\n 'linkedin',\n 'x',\n 'mastodon',\n 'bluesky',\n 'instagram',\n 'youtube',\n 'threads',\n 'facebook',\n 'website',\n 'blog',\n]);\n\n/**\n * Build the `Person` JSON-LD object for `data`.\n *\n * @param data A locale-resolved takuhon document.\n * @returns A Schema.org `Person` object. `@context` is included so the\n * returned object is valid as a standalone JSON-LD document.\n */\nexport function generatePersonJsonLd(data: LocalizedTakuhon): object {\n const person = buildPerson(data, deriveCanonicalUrl(data));\n return { '@context': 'https://schema.org', ...person };\n}\n\n/**\n * Build the `ProfilePage` JSON-LD object for `data`, with `Person` inlined\n * as `mainEntity`.\n *\n * @param data A locale-resolved takuhon document.\n */\nexport function generateProfilePageJsonLd(data: LocalizedTakuhon): object {\n const canonicalUrl = deriveCanonicalUrl(data);\n const person = buildPerson(data, canonicalUrl);\n\n const out: Record<string, unknown> = {};\n out['@context'] = 'https://schema.org';\n out['@type'] = 'ProfilePage';\n if (canonicalUrl !== undefined) out.url = canonicalUrl;\n out.inLanguage = data.resolvedLocale;\n if (data.meta.createdAt !== undefined) out.dateCreated = data.meta.createdAt;\n if (data.meta.updatedAt !== undefined) out.dateModified = data.meta.updatedAt;\n if (data.profile.avatar !== undefined) out.primaryImageOfPage = data.profile.avatar.url;\n out.mainEntity = person;\n return out;\n}\n\n/**\n * Build the array of JSON-LD objects to embed in a single\n * `<script type=\"application/ld+json\">` tag.\n *\n * Phase 1 emits a single-element array containing the `ProfilePage`; the\n * `Person` is inlined there as `mainEntity`. The array shape leaves room\n * for later additions (e.g. `WebSite`) without changing the public surface.\n */\nexport function generateJsonLd(data: LocalizedTakuhon): object[] {\n return [generateProfilePageJsonLd(data)];\n}\n\nfunction deriveCanonicalUrl(data: LocalizedTakuhon): string | undefined {\n const featured = data.links.find((l) => l.type === 'website' && l.featured === true);\n return featured?.url;\n}\n\nfunction buildPerson(data: LocalizedTakuhon, canonicalUrl: string | undefined): object {\n const {\n profile,\n careers,\n projects,\n links,\n skills,\n contact,\n certifications,\n memberships,\n volunteering,\n honors,\n education,\n publications,\n languages,\n courses,\n patents,\n } = data;\n\n const out: Record<string, unknown> = {};\n out['@type'] = 'Person';\n if (canonicalUrl !== undefined) out['@id'] = `${canonicalUrl}#person`;\n out.name = profile.displayName;\n if (profile.bio !== undefined) out.description = profile.bio;\n\n const image = buildImage(profile.avatar);\n if (image !== undefined) out.image = image;\n\n if (canonicalUrl !== undefined) out.url = canonicalUrl;\n\n const { current, past } = partitionCareers(careers);\n const roleFields = buildCurrentRoleFields(current);\n if (roleFields.jobTitle !== undefined) out.jobTitle = roleFields.jobTitle;\n if (roleFields.worksFor !== undefined) out.worksFor = roleFields.worksFor;\n\n const address = buildAddress(profile.location);\n if (address !== undefined) out.address = address;\n\n const email = buildEmail(contact);\n if (email !== undefined) out.email = email;\n\n const knowsAbout = buildKnowsAbout(skills);\n if (knowsAbout !== undefined) out.knowsAbout = knowsAbout;\n\n const knowsLanguage = buildKnowsLanguage(languages);\n if (knowsLanguage !== undefined) out.knowsLanguage = knowsLanguage;\n\n const hasCredential = buildCredentials(certifications);\n if (hasCredential !== undefined) out.hasCredential = hasCredential;\n\n const memberOf = buildMemberOf(memberships);\n if (memberOf !== undefined) out.memberOf = memberOf;\n\n const alumniOf = buildAlumniOf(education);\n if (alumniOf !== undefined) out.alumniOf = alumniOf;\n\n const award = buildAwards(honors);\n if (award !== undefined) out.award = award;\n\n const sameAs = buildSameAs(links);\n if (sameAs !== undefined) out.sameAs = sameAs;\n\n const subjectOf = [\n ...buildPastRoles(past),\n ...buildProjects(projects),\n ...buildVolunteeringRoles(volunteering),\n ...buildPublications(publications),\n ...buildCourses(courses),\n ...buildPatentWorks(patents),\n ];\n if (subjectOf.length > 0) out.subjectOf = subjectOf;\n\n return out;\n}\n\nfunction buildImage(avatar: LocalizedAvatar | undefined): object | undefined {\n if (!avatar) return undefined;\n const out: Record<string, unknown> = {};\n out['@type'] = 'ImageObject';\n out.url = avatar.url;\n if (avatar.alt !== undefined) out.caption = avatar.alt;\n return out;\n}\n\nfunction buildAddress(location: LocalizedAddress | undefined): object | undefined {\n if (!location) return undefined;\n const hasAny =\n location.country !== undefined ||\n location.region !== undefined ||\n location.locality !== undefined;\n if (!hasAny) return undefined;\n // `location.display` is intentionally not surfaced: it is a UI-facing\n // pre-formatted string and would duplicate the structured fields here.\n const out: Record<string, unknown> = {};\n out['@type'] = 'PostalAddress';\n if (location.country !== undefined) out.addressCountry = location.country;\n if (location.region !== undefined) out.addressRegion = location.region;\n if (location.locality !== undefined) out.addressLocality = location.locality;\n return out;\n}\n\nfunction partitionCareers(careers: LocalizedCareer[]): {\n current: LocalizedCareer[];\n past: LocalizedCareer[];\n} {\n const current: LocalizedCareer[] = [];\n const past: LocalizedCareer[] = [];\n for (const c of careers) {\n if (c.isCurrent === true) current.push(c);\n else past.push(c);\n }\n return { current, past };\n}\n\nfunction buildCurrentRoleFields(current: LocalizedCareer[]): {\n jobTitle?: string;\n worksFor?: object;\n} {\n const head = current[0];\n if (head === undefined) return {};\n const out: { jobTitle?: string; worksFor?: object } = {};\n if (head.role !== '') out.jobTitle = head.role;\n out.worksFor = buildWorksFor(head);\n return out;\n}\n\nfunction buildWorksFor(career: LocalizedCareer): object {\n const out: Record<string, unknown> = {};\n out['@type'] = 'Organization';\n out.name = career.organization;\n if (career.url !== undefined) out.url = career.url;\n return out;\n}\n\nfunction buildPastRoles(past: LocalizedCareer[]): object[] {\n return past.map((c) => {\n const out: Record<string, unknown> = {};\n out['@type'] = 'WorkRole';\n out.name = c.role;\n out.memberOf = { '@type': 'Organization', name: c.organization };\n out.startDate = c.startDate;\n // `null` denotes an unbounded position; omit so the published JSON-LD\n // does not carry an explicit `null`.\n if (c.endDate !== undefined && c.endDate !== null) out.endDate = c.endDate;\n return out;\n });\n}\n\nfunction buildProjects(projects: LocalizedProject[]): object[] {\n return projects.map((p) => {\n const out: Record<string, unknown> = {};\n out['@type'] = 'CreativeWork';\n out.name = p.title;\n if (p.url !== undefined) out.url = p.url;\n if (p.startDate !== undefined) out.datePublished = p.startDate;\n if (p.tags !== undefined && p.tags.length > 0) out.about = p.tags;\n return out;\n });\n}\n\nfunction buildSameAs(links: LocalizedLink[]): string[] | undefined {\n const out = links.filter((l) => SAMEAS_IDENTITY_TYPES.has(l.type)).map((l) => l.url);\n return out.length === 0 ? undefined : out;\n}\n\nfunction buildKnowsAbout(skills: Skill[]): string[] | undefined {\n if (skills.length === 0) return undefined;\n return skills.map((s) => s.label);\n}\n\nfunction buildEmail(contact: Contact): string | undefined {\n if (contact.showEmail !== true) return undefined;\n if (typeof contact.email !== 'string' || contact.email.length === 0) return undefined;\n return contact.email;\n}\n\nfunction buildKnowsLanguage(languages: LocalizedLanguage[]): string[] | undefined {\n if (languages.length === 0) return undefined;\n return languages.map((l) => l.language);\n}\n\nfunction buildCredentials(certifications: LocalizedCertification[]): object[] | undefined {\n if (certifications.length === 0) return undefined;\n return certifications.map((c) => {\n const out: Record<string, unknown> = {};\n out['@type'] = 'EducationalOccupationalCredential';\n if (c.title !== '') out.name = c.title;\n out.credentialCategory = 'certification';\n if (c.issuingOrganization !== '') {\n out.recognizedBy = {\n '@type': 'Organization',\n name: c.issuingOrganization,\n };\n }\n out.dateCreated = c.issueDate;\n if (c.expirationDate !== undefined && c.expirationDate !== null) {\n out.expires = c.expirationDate;\n }\n if (c.credentialId !== undefined) out.identifier = c.credentialId;\n if (c.url !== undefined) out.url = c.url;\n return out;\n });\n}\n\nfunction buildMemberOf(memberships: LocalizedMembership[]): object[] | undefined {\n if (memberships.length === 0) return undefined;\n // Schema.org Role wrapper pattern: the outer OrganizationRole\n // carries the role/date metadata; the inner `memberOf` Organization names the\n // body itself.\n return memberships.map((m) => {\n const out: Record<string, unknown> = {};\n out['@type'] = 'OrganizationRole';\n if (m.role !== undefined) out.roleName = m.role;\n out.startDate = m.startDate;\n if (m.endDate !== undefined && m.endDate !== null) out.endDate = m.endDate;\n if (m.description !== undefined) out.description = m.description;\n const org: Record<string, unknown> = { '@type': 'Organization', name: m.organization };\n if (m.url !== undefined) org.url = m.url;\n out.memberOf = org;\n return out;\n });\n}\n\nfunction buildAlumniOf(education: LocalizedEducation[]): object[] | undefined {\n if (education.length === 0) return undefined;\n // Schema.org Role wrapper pattern: outer OrganizationRole carries date +\n // concatenated degree/fieldOfStudy as roleName; inner `alumniOf` names\n // the EducationalOrganization.\n return education.map((e) => {\n const out: Record<string, unknown> = {};\n out['@type'] = 'OrganizationRole';\n const roleName = composeRoleName(e.degree, e.fieldOfStudy);\n if (roleName !== undefined) out.roleName = roleName;\n out.startDate = e.startDate;\n if (e.endDate !== undefined && e.endDate !== null) out.endDate = e.endDate;\n const description = composeEducationDescription(e.description, e.grade);\n if (description !== undefined) out.description = description;\n const org: Record<string, unknown> = {\n '@type': 'EducationalOrganization',\n name: e.institution,\n };\n if (e.url !== undefined) org.url = e.url;\n out.alumniOf = org;\n return out;\n });\n}\n\nfunction composeRoleName(\n degree: string | undefined,\n fieldOfStudy: string | undefined,\n): string | undefined {\n if (degree === undefined && fieldOfStudy === undefined) return undefined;\n if (degree !== undefined && fieldOfStudy !== undefined) return `${degree} (${fieldOfStudy})`;\n return degree ?? fieldOfStudy;\n}\n\nfunction composeEducationDescription(\n description: string | undefined,\n grade: string | undefined,\n): string | undefined {\n // `grade` may have already been stripped by the API privacy filter; if it\n // reaches us, prepend a labelled line to the description.\n if (grade !== undefined && description !== undefined) return `Grade: ${grade}. ${description}`;\n if (grade !== undefined) return `Grade: ${grade}`;\n return description;\n}\n\nfunction buildAwards(honors: LocalizedHonor[]): string[] | undefined {\n if (honors.length === 0) return undefined;\n return honors.map((h) => `${h.title} (${h.issuer}, ${h.date})`);\n}\n\nfunction buildVolunteeringRoles(volunteering: LocalizedVolunteering[]): object[] {\n return volunteering.map((v) => {\n const out: Record<string, unknown> = {};\n // Schema.org `VolunteerRole` is a pending property; we use the stable\n // `Role` type with `roleName` so indexers without VolunteerRole support\n // still read meaningful data.\n out['@type'] = 'Role';\n out.roleName = v.role;\n out.startDate = v.startDate;\n if (v.endDate !== undefined && v.endDate !== null) out.endDate = v.endDate;\n const description = composeVolunteeringDescription(v.cause, v.description);\n if (description !== undefined) out.description = description;\n const org: Record<string, unknown> = { '@type': 'Organization', name: v.organization };\n if (v.url !== undefined) org.url = v.url;\n out.memberOf = org;\n return out;\n });\n}\n\nfunction composeVolunteeringDescription(\n cause: string | undefined,\n description: string | undefined,\n): string | undefined {\n if (cause !== undefined && description !== undefined) return `Cause: ${cause}. ${description}`;\n if (cause !== undefined) return `Cause: ${cause}`;\n return description;\n}\n\nfunction buildPublications(publications: LocalizedPublication[]): object[] {\n return publications.map((p) => {\n const out: Record<string, unknown> = {};\n out['@type'] = 'ScholarlyArticle';\n out.name = p.title;\n if (p.publisher !== undefined) {\n out.publisher = { '@type': 'Organization', name: p.publisher };\n }\n out.datePublished = p.date;\n if (p.url !== undefined) out.url = p.url;\n if (p.doi !== undefined) {\n out.identifier = { '@type': 'PropertyValue', propertyID: 'DOI', value: p.doi };\n }\n if (p.coAuthors !== undefined && p.coAuthors.length > 0) {\n out.author = p.coAuthors.map((name) => ({ '@type': 'Person', name }));\n }\n return out;\n });\n}\n\nfunction buildCourses(courses: LocalizedCourse[]): object[] {\n return courses.map((c) => {\n const out: Record<string, unknown> = {};\n out['@type'] = 'Course';\n out.name = c.title;\n if (c.provider !== undefined) {\n out.provider = { '@type': 'Organization', name: c.provider };\n }\n if (c.courseNumber !== undefined) out.courseCode = c.courseNumber;\n if (c.certificateUrl !== undefined) out.url = c.certificateUrl;\n if (c.completionDate !== undefined) {\n // Schema.org Course has no direct date property; dates live on\n // CourseInstance via hasCourseInstance.\n out.hasCourseInstance = {\n '@type': 'CourseInstance',\n endDate: c.completionDate,\n };\n }\n return out;\n });\n}\n\nfunction buildPatentWorks(patents: LocalizedPatent[]): object[] {\n return patents.map((p) => {\n const out: Record<string, unknown> = {};\n // Schema.org Patent is not in the released vocabulary; emit CreativeWork\n // with additionalType pointing at the pending Patent URL so consumers\n // that recognize it can specialize, while others fall back gracefully.\n out['@type'] = 'CreativeWork';\n out.additionalType = 'https://schema.org/Patent';\n out.name = p.title;\n out.identifier = p.patentNumber;\n if (p.office !== undefined) {\n out.publisher = { '@type': 'Organization', name: p.office };\n }\n out.creativeWorkStatus = p.status;\n if (p.grantDate !== undefined) {\n out.datePublished = p.grantDate;\n } else if (p.filingDate !== undefined) {\n out.dateCreated = p.filingDate;\n }\n if (p.url !== undefined) out.url = p.url;\n if (p.coInventors !== undefined && p.coInventors.length > 0) {\n out.author = p.coInventors.map((name) => ({ '@type': 'Person', name }));\n }\n return out;\n });\n}\n","/**\n * Export and import for takuhon profile documents.\n *\n * {@link exportTakuhon} serialises a {@link Takuhon} document into a transport\n * form ({@link ExportedTakuhon}) that can be persisted to a file, an API\n * response, or any other byte-oriented sink. {@link importTakuhon} is the\n * inverse: it validates the input and returns a {@link Takuhon}.\n *\n * Scope of these helpers (deliberately narrow):\n * - Pure, in-memory data transforms — no I/O, no storage adapter coupling.\n * - {@link importTakuhon} **does not** auto-migrate older `schemaVersion`\n * values. Cross-version handling belongs to the CLI / API layer, which\n * composes `importTakuhon` + {@link migrateTakuhon} + storage adapters as\n * spelled out in operational-lifecycle §5.3.\n * - Round-trip equivalence (operational-lifecycle §5.1) is preserved up to\n * the documented `meta.updatedAt` exception.\n *\n * Asset embedding (Base64) and backup creation are out of scope here; both\n * are the storage / API layer's responsibility.\n */\n\nimport type { Takuhon } from './types.js';\nimport { validate, type ValidationError } from './validate.js';\n\n/**\n * Structural alias of {@link Takuhon}: the transport form is the document\n * itself. A wrapping envelope (e.g. `{ format, version, data, hash }`) is\n * intentionally avoided in Phase 1 — adding one later would be a breaking\n * change to the `GET /api/admin/export` response shape and would require a major\n * version bump of `@takuhon/core`.\n */\nexport type ExportedTakuhon = Takuhon;\n\n/** Options for {@link exportTakuhon}. */\nexport interface ExportOptions {\n /**\n * When `true` (default), `meta.updatedAt` is overwritten with the current\n * ISO-8601 timestamp. Set to `false` for byte-for-byte reproducible\n * exports (e.g. roundtrip tests).\n *\n * Round-trip equivalence per operational-lifecycle §5.1 explicitly lists\n * `meta.updatedAt` as the allowed exception.\n */\n updateTimestamp?: boolean;\n}\n\n/**\n * Thrown by {@link importTakuhon} when the input fails schema validation\n * (including an unsupported `schemaVersion`). The `errors` field carries\n * the same {@link ValidationError} list that `validate()` would have\n * returned, so the API layer can map them onto RFC 7807.\n */\nexport class ImportError extends Error {\n readonly errors?: ValidationError[];\n\n constructor(message: string, options?: { cause?: unknown; errors?: ValidationError[] }) {\n super(message, { cause: options?.cause });\n this.name = 'ImportError';\n this.errors = options?.errors;\n }\n}\n\n/**\n * Serialise a {@link Takuhon} into its transport form. The input is\n * deep-cloned via `JSON.parse(JSON.stringify(...))`; the original is never\n * mutated.\n */\nexport function exportTakuhon(data: Takuhon, options: ExportOptions = {}): ExportedTakuhon {\n const out = JSON.parse(JSON.stringify(data)) as ExportedTakuhon;\n if (options.updateTimestamp !== false) {\n out.meta = { ...out.meta, updatedAt: new Date().toISOString() };\n }\n return out;\n}\n\n/**\n * Validate an {@link ExportedTakuhon} and return it as a {@link Takuhon}.\n *\n * On schema validation failure (including an unsupported `schemaVersion`)\n * throws an {@link ImportError} with the structured `errors` attached. The\n * input is not mutated. The return value is a deep clone, so subsequent\n * caller mutations cannot reach back into the supplied document.\n *\n * Cross-version inputs (older `schemaVersion`) are out of scope: callers\n * (CLI / API layer) should run {@link migrateTakuhon} before calling this.\n */\nexport function importTakuhon(data: ExportedTakuhon): Takuhon {\n const result = validate(data);\n if (!result.ok) {\n throw new ImportError('imported document failed schema validation', { errors: result.errors });\n }\n return JSON.parse(JSON.stringify(result.data)) as Takuhon;\n}\n","/**\n * Public-endpoint privacy filter for takuhon profile documents.\n *\n * Strips fields that the spec's privacy posture marks as opt-in for public\n * exposure, before the document reaches a public reader (a public API\n * response, a statically built page, …). The filter is deliberately\n * conservative: when `meta.privacy` is absent the most restrictive\n * interpretation applies (everything sensitive is hidden), and the operator\n * must explicitly opt into disclosure by setting the relevant flag to\n * `false`.\n *\n * This lives in `@takuhon/core` because it is a pure transform over the core\n * document types with no transport coupling, so every public surface — the\n * API layer, the CLI's `build`, future renderers — applies the exact same\n * projection. `@takuhon/api` re-exports it for backwards compatibility.\n *\n * Fields filtered:\n *\n * - `certifications[*].credentialId` — hidden when\n * `meta.privacy.hideCredentialIds !== false` (default true).\n * - `education[*].grade` — hidden when\n * `meta.privacy.hideEducationGrades !== false` (default true).\n * - `contact.email` — hidden when `contact.showEmail !== true`.\n *\n * `patents[*].patentNumber` is **not** filtered. Patent numbers are public\n * records (issued patents are published by the granting office) and Spec\n * §6.21 explicitly excludes them from the privacy block.\n *\n * Behavior:\n *\n * - Pure function. The input is never mutated; a shallow-copied result is\n * returned with only the touched arrays / objects replaced.\n * - When no filter applies (every flag opts into disclosure), the original\n * reference is returned as-is so callers can compare by identity.\n * - Admin endpoints (`/api/admin/*`, including `/api/admin/export`) MUST NOT\n * call this helper — they always serve the full document to authenticated\n * callers.\n */\n\nimport type { LocalizedTakuhon, Takuhon } from './types.js';\n\n/**\n * Union of the two profile shapes that traverse the public path. The fields\n * the filter touches (`certifications[*].credentialId`, `education[*].grade`,\n * `contact.email`) are structurally identical between {@link Takuhon} and\n * {@link LocalizedTakuhon}, so the same logic applies to either shape.\n */\ntype FilterableProfile = Takuhon | LocalizedTakuhon;\n\n/**\n * Return a privacy-filtered copy of `profile` suitable for public responses.\n *\n * @param profile Either a raw {@link Takuhon} or a locale-resolved\n * {@link LocalizedTakuhon}. The output preserves the input's\n * exact shape.\n */\nexport function applyPublicPrivacyFilter<T extends FilterableProfile>(profile: T): T {\n const hideCredentialIds = profile.meta.privacy?.hideCredentialIds !== false;\n const hideEducationGrades = profile.meta.privacy?.hideEducationGrades !== false;\n const allowEmail = profile.contact.showEmail === true;\n\n const stripCertifications = hideCredentialIds && hasAnyCredentialId(profile);\n const stripEducation = hideEducationGrades && hasAnyGrade(profile);\n const stripEmail = !allowEmail && profile.contact.email !== undefined;\n\n if (!stripCertifications && !stripEducation && !stripEmail) {\n return profile;\n }\n\n const out: FilterableProfile = { ...profile };\n\n if (stripCertifications) {\n out.certifications = profile.certifications.map(stripCredentialId) as T['certifications'];\n }\n\n if (stripEducation) {\n out.education = profile.education.map(stripGrade) as T['education'];\n }\n\n if (stripEmail) {\n const { email: _omit, ...rest } = profile.contact;\n out.contact = rest;\n }\n\n return out as T;\n}\n\nfunction hasAnyCredentialId(profile: FilterableProfile): boolean {\n return profile.certifications.some((c) => c.credentialId !== undefined);\n}\n\nfunction hasAnyGrade(profile: FilterableProfile): boolean {\n return profile.education.some((e) => e.grade !== undefined);\n}\n\nfunction stripCredentialId<T extends { credentialId?: string }>(item: T): T {\n if (item.credentialId === undefined) return item;\n const { credentialId: _omit, ...rest } = item;\n return rest as T;\n}\n\nfunction stripGrade<T extends { grade?: string }>(item: T): T {\n if (item.grade === undefined) return item;\n const { grade: _omit, ...rest } = item;\n return rest as T;\n}\n","/**\n * Module-private chain-building helper for the migration registry.\n *\n * Not re-exported from `@takuhon/core`'s public surface: the algorithm is an\n * implementation detail of {@link migrateTakuhon}, and adding it to the\n * public API would freeze its signature under semver. Unit tests import\n * this file directly to exercise the chain logic against synthetic\n * fixtures.\n */\n\nimport type { Takuhon } from '../types.js';\n\nimport type { Migration } from './index.js';\n\n/**\n * Build a forward chain of migrations from `from` to `to`. Returns `[]`\n * when `from === to`, or `null` when no chain exists or a cycle is\n * encountered. The walk is linear (one outgoing edge per `from`); a\n * visited-set guards against cycles introduced by misconfigured registries.\n */\nexport function findMigrationChain(\n from: string,\n to: string,\n registry: readonly Migration<Takuhon, Takuhon>[],\n): Migration<Takuhon, Takuhon>[] | null {\n if (from === to) return [];\n const byFrom = new Map<string, Migration<Takuhon, Takuhon>>();\n for (const m of registry) byFrom.set(m.from, m);\n const chain: Migration<Takuhon, Takuhon>[] = [];\n const visited = new Set<string>([from]);\n let cur = from;\n while (cur !== to) {\n const next = byFrom.get(cur);\n if (!next) return null;\n if (visited.has(next.to)) return null;\n chain.push(next);\n visited.add(next.to);\n cur = next.to;\n }\n return chain;\n}\n","/**\n * Forward migration from schema 0.1.0 to 0.2.0.\n *\n * Adds nine new top-level array fields (`certifications` / `memberships` /\n * `volunteering` / `honors` / `education` / `publications` / `languages` /\n * `courses` / `patents`) and the `meta.privacy` opt-out block. The\n * transformation is additive: existing fields pass through untouched and no\n * 0.1.x value is dropped.\n *\n * Conditional spread is intentional. The 0.1.x schema closes the document\n * root (`additionalProperties: false`), so a validated 0.1.x profile cannot\n * carry pre-existing values at the new keys. The migration nevertheless\n * runs on `unknown`-shaped input that may not have been validated yet — a\n * stored profile authored ahead of time with forward-compatible 0.2.0 keys,\n * an import file from a downstream consumer, etc. Preserving any value\n * already present at these keys prevents data loss in those paths.\n */\n\nimport type { Takuhon } from '../types.js';\n\nimport type { Migration } from './index.js';\n\nexport const v0_1_0_to_v0_2_0: Migration<Takuhon, Takuhon> = {\n from: '0.1.0',\n to: '0.2.0',\n migrate(data: Takuhon): Takuhon {\n const partial = data as Partial<Takuhon>;\n return {\n ...data,\n schemaVersion: '0.2.0',\n certifications: partial.certifications ?? [],\n memberships: partial.memberships ?? [],\n volunteering: partial.volunteering ?? [],\n honors: partial.honors ?? [],\n education: partial.education ?? [],\n publications: partial.publications ?? [],\n languages: partial.languages ?? [],\n courses: partial.courses ?? [],\n patents: partial.patents ?? [],\n };\n },\n};\n","/**\n * Forward migration from schema 0.2.0 to 0.3.0.\n *\n * Adds the `testScores` top-level array (standardized test / exam scores,\n * LinkedIn `Test_Scores.csv` equivalent). The transformation is additive:\n * existing fields pass through untouched and no 0.2.x value is dropped.\n *\n * Conditional spread mirrors `v0.1.0-to-v0.2.0`. The 0.2.x schema closes the\n * document root (`additionalProperties: false`), so a validated 0.2.x profile\n * cannot carry a pre-existing `testScores` value. The migration nevertheless\n * runs on `unknown`-shaped input that may not have been validated yet — a\n * stored profile authored ahead of time with a forward-compatible 0.3.0 key,\n * an import file from a downstream consumer, etc. Preserving any value already\n * present at `testScores` prevents data loss in those paths.\n */\n\nimport type { Takuhon } from '../types.js';\n\nimport type { Migration } from './index.js';\n\nexport const v0_2_0_to_v0_3_0: Migration<Takuhon, Takuhon> = {\n from: '0.2.0',\n to: '0.3.0',\n migrate(data: Takuhon): Takuhon {\n const partial = data as Partial<Takuhon>;\n return {\n ...data,\n schemaVersion: '0.3.0',\n testScores: partial.testScores ?? [],\n };\n },\n};\n","/**\n * Forward migration from schema 0.3.0 to 0.4.0.\n *\n * Adds the `recommendations` top-level array (owner-curated testimonials, the\n * LinkedIn `Recommendations_Received.csv` equivalent). The transformation is\n * additive: existing fields pass through untouched and no 0.3.x value is\n * dropped.\n *\n * Conditional spread mirrors the earlier migrations. The 0.3.x schema closes\n * the document root (`additionalProperties: false`), so a validated 0.3.x\n * profile cannot carry a pre-existing `recommendations` value. The migration\n * nevertheless runs on `unknown`-shaped input that may not have been validated\n * yet — a stored profile authored ahead of time with a forward-compatible\n * 0.4.0 key, an import file from a downstream consumer, etc. Preserving any\n * value already present at `recommendations` prevents data loss in those paths.\n */\n\nimport type { Takuhon } from '../types.js';\n\nimport type { Migration } from './index.js';\n\nexport const v0_3_0_to_v0_4_0: Migration<Takuhon, Takuhon> = {\n from: '0.3.0',\n to: '0.4.0',\n migrate(data: Takuhon): Takuhon {\n const partial = data as Partial<Takuhon>;\n return {\n ...data,\n schemaVersion: '0.4.0',\n recommendations: partial.recommendations ?? [],\n };\n },\n};\n","/**\n * Forward migration registry for `@takuhon/core`.\n *\n * Each migration is a pure function from a takuhon document at version `from`\n * to one at version `to`. The registry is consulted by {@link migrateTakuhon}\n * to build a chain when the requested target is more than one step away\n * (`0.1.0 → 0.3.0` is composed of `0.1.0→0.2.0` and `0.2.0→0.3.0`).\n *\n * Authoring conventions:\n * - File name: `vX.Y.Z-to-vA.B.C.ts`\n * - Pure function: must not mutate input, must not perform I/O\n * - Forward only: downgrades are not provided; recovery is via the backup\n * restore path (operational-lifecycle §4)\n * - Each entry ships with a unit test: sample input/output, idempotency\n * when applicable, and schema-pass against the target version's schema\n *\n * The chain-building algorithm lives in `_chain.ts` and is intentionally\n * not re-exported from `@takuhon/core` — it is an implementation detail of\n * {@link migrateTakuhon}.\n */\n\nimport type { Takuhon } from '../types.js';\n\nimport { v0_1_0_to_v0_2_0 } from './v0.1.0-to-v0.2.0.js';\nimport { v0_2_0_to_v0_3_0 } from './v0.2.0-to-v0.3.0.js';\nimport { v0_3_0_to_v0_4_0 } from './v0.3.0-to-v0.4.0.js';\n\n/**\n * A forward migration entry. `from` and `to` are semver strings matching\n * the `schemaVersion` field of the input and output documents. `migrate`\n * is pure: it must not mutate `data`.\n */\nexport interface Migration<From, To> {\n from: string;\n to: string;\n migrate(data: From): To;\n}\n\n/**\n * Forward migrations bundled with this build of `@takuhon/core`.\n *\n * Entries are listed in the order they would chain for forward migration\n * (`0.1.0 → 0.2.0 → 0.3.0 → ...`). {@link migrateTakuhon} consults this\n * array to build the chain between a source `schemaVersion` and a target.\n */\nexport const migrations: readonly Migration<Takuhon, Takuhon>[] = [\n v0_1_0_to_v0_2_0,\n v0_2_0_to_v0_3_0,\n v0_3_0_to_v0_4_0,\n];\n","/**\n * Forward migration entry point for takuhon documents.\n *\n * {@link migrateTakuhon} composes a chain of {@link Migration} entries from\n * the registry (`./migrations`) and applies them in order. The registry\n * currently ships the `0.1.0 → 0.2.0`, `0.2.0 → 0.3.0`, and `0.3.0 → 0.4.0`\n * forward migrations; a request whose source has no chain to the target\n * throws {@link MigrationError}.\n *\n * Scope (deliberately narrow, mirroring `export.ts`):\n * - Pure data transform — no I/O, no backup creation, no storage write.\n * - Backup-before-migrate (operational-lifecycle §3.1) is the storage /\n * API layer's responsibility; this function only transforms the\n * in-memory document.\n * - Forward only (operational-lifecycle §2.4); downgrade is via restore.\n */\n\nimport { findMigrationChain } from './migrations/_chain.js';\nimport { migrations } from './migrations/index.js';\nimport type { Takuhon } from './types.js';\n\n/**\n * Thrown by {@link migrateTakuhon} when no forward chain connects the\n * source `schemaVersion` to `targetVersion`. The message includes both\n * versions so the API layer can surface an actionable RFC 7807 problem.\n */\nexport class MigrationError extends Error {\n constructor(message: string, options?: { cause?: unknown }) {\n super(message, options);\n this.name = 'MigrationError';\n }\n}\n\n/**\n * Migrate a takuhon document forward to `targetVersion`. Returns a deep\n * clone; the input is never mutated, even when a migration throws.\n *\n * @throws {MigrationError} when no forward chain exists from\n * `data.schemaVersion` to `targetVersion`.\n */\nexport function migrateTakuhon(data: Takuhon, targetVersion: string): Takuhon {\n const sourceVersion = data.schemaVersion;\n if (sourceVersion === targetVersion) {\n return JSON.parse(JSON.stringify(data)) as Takuhon;\n }\n const chain = findMigrationChain(sourceVersion, targetVersion, migrations);\n if (!chain) {\n throw new MigrationError(`No migration path from ${sourceVersion} to ${targetVersion}`);\n }\n let current: Takuhon = JSON.parse(JSON.stringify(data)) as Takuhon;\n for (const step of chain) {\n current = step.migrate(current);\n }\n return current;\n}\n","/**\n * Persistence contracts for takuhon profile documents and binary assets.\n *\n * Adapters (KV / R2 / filesystem / SQLite / …) implement these interfaces to\n * plug into `@takuhon/api`. All methods are async; failures surface as\n * exceptions in the {@link StorageError} family so the API layer can map them\n * onto RFC 7807 problem details.\n *\n * Design notes:\n * - `version` is an opaque ETag-like token (UUID, hash, monotonic counter —\n * the adapter chooses). It powers HTTP `If-Match` style optimistic locking\n * and is unrelated to {@link Takuhon.schemaVersion}, which describes the\n * document's data-model version.\n * - `getProfile()` returns a raw {@link Takuhon}, not a normalized or\n * locale-resolved one. Normalization and locale resolution belong to the\n * API / render layer; storage only persists.\n * - `saveProfile(data, ifMatch?)` rejects with {@link ConflictError} when\n * `ifMatch` is supplied and does not equal the current stored version.\n * When `ifMatch` is omitted, the adapter's policy decides whether to\n * overwrite unconditionally; per-implementation docs spell this out.\n * - `TakuhonAssetStorage` is intentionally a separate interface so deployments\n * that don't host user-uploaded media (e.g. static export) can omit it.\n * - The naming standardises on the lowercase \"Takuhon\" word (cf.\n * {@link Takuhon}, {@link LocalizedTakuhon}, `normalize`, `validate`) even\n * where upstream documents write \"Takuhon\".\n */\n\nimport type { Takuhon } from './types.js';\n\n/**\n * Persistence contract for the single profile document of a takuhon instance.\n *\n * Implementations: Cloudflare KV (Phase 3), filesystem (Phase 3+), in-memory\n * test doubles, and future SQL adapters.\n */\nexport interface TakuhonStorage {\n /**\n * Read the current profile document and its opaque version token.\n *\n * @throws {NotFoundError} when no profile has been saved yet.\n */\n getProfile(): Promise<{ data: Takuhon; version: string }>;\n\n /**\n * Replace the profile document. The returned `version` is the new opaque\n * token to supply as the next `ifMatch`.\n *\n * @param data the document to persist (raw, not normalized)\n * @param ifMatch when set, the adapter rejects the write unless the\n * current stored version equals this token\n * @throws {ConflictError} when `ifMatch` is supplied and does not equal\n * the current stored version\n */\n saveProfile(data: Takuhon, ifMatch?: string): Promise<{ version: string }>;\n\n /**\n * Remove the profile document. Idempotent: no error when nothing is stored.\n */\n deleteProfile(): Promise<void>;\n}\n\n/**\n * Metadata for a stored binary asset, returned by {@link TakuhonAssetStorage}.\n *\n * `url` is the relative path used inside the document (`/assets/...`);\n * `publicUrl` is the absolute URL a browser can fetch. The two are kept\n * distinct because adapters may serve assets from a different host than the\n * profile (e.g. Cloudflare R2 + custom CDN).\n */\nexport interface AssetRecord {\n id: string;\n url: string;\n publicUrl: string;\n mimeType: string;\n size: number;\n width?: number;\n height?: number;\n /** ISO-8601 timestamp. */\n createdAt?: string;\n}\n\n/**\n * Caller hints for {@link TakuhonAssetStorage.putAsset}. Both fields are\n * optional; when omitted, the adapter falls back to the `File` / `Blob`\n * metadata. Adapters are responsible for magic-byte verification, EXIF\n * stripping, and dimension limits — callers must not pre-process.\n */\nexport interface AssetOptions {\n filename?: string;\n contentType?: string;\n}\n\n/**\n * Persistence contract for binary assets (avatars, project images, …).\n *\n * `listAssets()` is unbounded by design for the MVP; later phases may\n * introduce paginated semantics with a different return shape. `getPublicUrl()`\n * takes only an `assetId` today; a future options object (e.g. `expiresIn`\n * for signed URLs) would be added in a backward-compatible way.\n */\nexport interface TakuhonAssetStorage {\n putAsset(file: File | Blob, options?: AssetOptions): Promise<AssetRecord>;\n /** @throws {NotFoundError} when no asset exists for `assetId`. */\n getPublicUrl(assetId: string): Promise<string>;\n /** Idempotent: no error when the asset is already absent. */\n deleteAsset(assetId: string): Promise<void>;\n listAssets(): Promise<AssetRecord[]>;\n}\n\n/**\n * Base class for errors thrown by storage adapters. Catch this to handle\n * any storage-layer failure uniformly; check `instanceof` of a subclass\n * (e.g. {@link NotFoundError}, {@link ConflictError}) to discriminate.\n */\nexport class StorageError extends Error {\n constructor(message: string, options?: { cause?: unknown }) {\n super(message, options);\n this.name = 'StorageError';\n }\n}\n\n/** Thrown when a requested resource (profile or asset) does not exist. */\nexport class NotFoundError extends StorageError {\n constructor(message: string, options?: { cause?: unknown }) {\n super(message, options);\n this.name = 'NotFoundError';\n }\n}\n\n/**\n * Thrown when an optimistic-locking precondition fails: the caller supplied\n * an `ifMatch` token that does not equal the current stored version.\n *\n * `currentVersion` (when set) carries the actual current version so the\n * caller can decide between refetch-and-retry and surfacing a 409 to the\n * end user without an extra round trip.\n */\nexport class ConflictError extends StorageError {\n readonly currentVersion?: string;\n\n constructor(message: string, options?: { currentVersion?: string; cause?: unknown }) {\n super(message, { cause: options?.cause });\n this.name = 'ConflictError';\n this.currentVersion = options?.currentVersion;\n }\n}\n","/**\n * @takuhon/core — canonical JSON Schema, hand-written TypeScript types,\n * Ajv-backed validation, document normalization, and locale resolution for\n * takuhon profile data.\n *\n * Public surface (Phase 1):\n * - {@link schema}: the JSON Schema 2020-12 contract bundled with this build.\n * - {@link SCHEMA_VERSION}: the version of that schema (matches the `$id`).\n * - {@link validate} / {@link ValidationResult} / {@link ValidationError} /\n * {@link SUPPORTED_SCHEMA_VERSIONS}: Result-style validator backed by Ajv.\n * - {@link normalize} / {@link NormalizedTakuhon}: canonicalize a validated\n * document (sort lists by `order`, drop blank localized entries).\n * - {@link resolveLocale} / {@link LocalizedTakuhon}: collapse a multi-locale\n * document to a single requested locale with BCP-47 regional fallback.\n * - {@link generateJsonLd} / {@link generatePersonJsonLd} /\n * {@link generateProfilePageJsonLd}: emit Schema.org JSON-LD\n * (`ProfilePage` wrapping `Person`) from a locale-resolved document.\n * - {@link TakuhonStorage} / {@link TakuhonAssetStorage}: persistence contracts\n * for adapters (KV / R2 / filesystem / SQLite / …), with the\n * {@link StorageError} / {@link NotFoundError} / {@link ConflictError}\n * exception family for optimistic-locking and not-found signalling.\n * - {@link exportTakuhon} / {@link importTakuhon} / {@link ExportOptions} /\n * {@link ExportedTakuhon} / {@link ImportError}: roundtrip-stable\n * serialisation for transport (file, API response, …).\n * - {@link migrateTakuhon} / {@link Migration} / {@link migrations} /\n * {@link MigrationError}: forward-only migration registry, chaining\n * `0.1.0 → 0.2.0 → 0.3.0 → 0.4.0`.\n * - Domain types: {@link Takuhon} and its constituent shapes (`Profile`,\n * `Settings`, `Career`, `Project`, `Link` discriminated union, etc.).\n */\n\nexport { schema } from './schema.js';\nexport type { Schema } from './schema.js';\n\nexport { SUPPORTED_SCHEMA_VERSIONS, validate } from './validate.js';\nexport type { ValidationError, ValidationResult } from './validate.js';\n\nexport { normalize } from './normalize.js';\nexport { resolveLocale } from './resolve-locale.js';\nexport { generateJsonLd, generatePersonJsonLd, generateProfilePageJsonLd } from './jsonld.js';\n\nexport { ImportError, exportTakuhon, importTakuhon } from './export.js';\nexport type { ExportOptions, ExportedTakuhon } from './export.js';\n\nexport { applyPublicPrivacyFilter } from './privacy-filter.js';\n\nexport { MigrationError, migrateTakuhon } from './migrate.js';\nexport { migrations } from './migrations/index.js';\nexport type { Migration } from './migrations/index.js';\n\nexport { ConflictError, NotFoundError, StorageError } from './storage-interface.js';\nexport type {\n AssetOptions,\n AssetRecord,\n TakuhonAssetStorage,\n TakuhonStorage,\n} from './storage-interface.js';\n\nexport type {\n Address,\n Avatar,\n Career,\n Certification,\n Contact,\n ContentLicense,\n ContentLicenseAttribution,\n Course,\n Education,\n Honor,\n Iso3166Alpha2,\n IsoDateTime,\n Language,\n LanguageProficiency,\n Link,\n LinkBuiltin,\n LinkCustom,\n LinkType,\n LocaleTag,\n LocalizedAddress,\n LocalizedAvatar,\n LocalizedBody,\n LocalizedCareer,\n LocalizedCertification,\n LocalizedCourse,\n LocalizedEducation,\n LocalizedHonor,\n LocalizedLanguage,\n LocalizedLink,\n LocalizedLinkBuiltin,\n LocalizedLinkCustom,\n LocalizedMembership,\n LocalizedPatent,\n LocalizedProfile,\n LocalizedProject,\n LocalizedPublication,\n LocalizedRecommendation,\n LocalizedRecommendationAuthor,\n LocalizedTakuhon,\n LocalizedTestScore,\n LocalizedTitle,\n LocalizedVolunteering,\n Membership,\n Meta,\n MetaPrivacy,\n NormalizedTakuhon,\n Patent,\n PatentStatus,\n Profile,\n Project,\n Publication,\n Recommendation,\n RecommendationAuthor,\n Settings,\n Skill,\n Slug,\n Takuhon,\n TestScore,\n Volunteering,\n YearMonth,\n} from './types.js';\n\n/**\n * Version of the takuhon schema bundled with this build of `@takuhon/core`.\n * A takuhon profile document's `schemaVersion` field must be migrate-compatible\n * with this version. See operational-lifecycle docs for the migration policy.\n */\nexport const SCHEMA_VERSION = '0.4.0';\n"],"mappings":"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","names":["validate","validateTakuhon","out"]}
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/lib/runtime/ucs2length.ts","../../../node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.20.0/node_modules/ajv-formats/src/formats.ts","../../../node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js","../../../node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/lib/runtime/equal.ts","../src/generated/takuhon-validator.cjs","../takuhon.schema.json","../src/schema.ts","../src/validate.ts","../src/normalize.ts","../src/locale-tag.ts","../src/resolve-locale.ts","../src/jsonld.ts","../src/export.ts","../src/privacy-filter.ts","../src/migrations/_chain.ts","../src/migrations/v0.1.0-to-v0.2.0.ts","../src/migrations/v0.2.0-to-v0.3.0.ts","../src/migrations/v0.3.0-to-v0.4.0.ts","../src/migrations/v0.4.0-to-v0.5.0.ts","../src/migrations/index.ts","../src/migrate.ts","../src/storage-interface.ts","../src/activity.ts","../src/activity-svg.ts","../src/image.ts","../src/index.ts"],"sourcesContent":["// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nexport default function ucs2length(str: string): number {\n const len = str.length\n let length = 0\n let pos = 0\n let value: number\n while (pos < len) {\n length++\n value = str.charCodeAt(pos++)\n if (value >= 0xd800 && value <= 0xdbff && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos)\n if ((value & 0xfc00) === 0xdc00) pos++ // low surrogate\n }\n }\n return length\n}\n\nucs2length.code = 'require(\"ajv/dist/runtime/ucs2length\").default'\n","import type {Format, FormatDefinition} from \"ajv\"\nimport type {FormatValidator, FormatCompare} from \"ajv/dist/types\"\n\nexport type FormatMode = \"fast\" | \"full\"\n\nexport type FormatName =\n | \"date\"\n | \"time\"\n | \"date-time\"\n | \"iso-time\"\n | \"iso-date-time\"\n | \"duration\"\n | \"uri\"\n | \"uri-reference\"\n | \"uri-template\"\n | \"url\"\n | \"email\"\n | \"hostname\"\n | \"ipv4\"\n | \"ipv6\"\n | \"regex\"\n | \"uuid\"\n | \"json-pointer\"\n | \"json-pointer-uri-fragment\"\n | \"relative-json-pointer\"\n | \"byte\"\n | \"int32\"\n | \"int64\"\n | \"float\"\n | \"double\"\n | \"password\"\n | \"binary\"\n\nexport type DefinedFormats = {\n [key in FormatName]: Format\n}\n\nfunction fmtDef(\n validate: RegExp | FormatValidator<string>,\n compare: FormatCompare<string>\n): FormatDefinition<string> {\n return {validate, compare}\n}\n\nexport const fullFormats: DefinedFormats = {\n // date: http://tools.ietf.org/html/rfc3339#section-5.6\n date: fmtDef(date, compareDate),\n // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n time: fmtDef(getTime(true), compareTime),\n \"date-time\": fmtDef(getDateTime(true), compareDateTime),\n \"iso-time\": fmtDef(getTime(), compareIsoTime),\n \"iso-date-time\": fmtDef(getDateTime(), compareIsoDateTime),\n // duration: https://tools.ietf.org/html/rfc3339#appendix-A\n duration: /^P(?!$)((\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+S)?)?|(\\d+W)?)$/,\n uri,\n \"uri-reference\":\n /^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'\"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,\n // uri-template: https://tools.ietf.org/html/rfc6570\n \"uri-template\":\n /^(?:(?:[^\\x00-\\x20\"'<>%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i,\n // For the source: https://gist.github.com/dperini/729294\n // For test cases: https://mathiasbynens.be/demo/url-regex\n url: /^(?:https?|ftp):\\/\\/(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)(?:\\.(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu,\n email:\n /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname:\n /^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i,\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)$/,\n ipv6: /^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))$/i,\n regex,\n // uuid: http://tools.ietf.org/html/rfc4122\n uuid: /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,\n // JSON-pointer: https://tools.ietf.org/html/rfc6901\n // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n \"json-pointer\": /^(?:\\/(?:[^~/]|~0|~1)*)*$/,\n \"json-pointer-uri-fragment\": /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,\n // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n \"relative-json-pointer\": /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/,\n // the following formats are used by the openapi specification: https://spec.openapis.org/oas/v3.0.0#data-types\n // byte: https://github.com/miguelmota/is-base64\n byte,\n // signed 32 bit integer\n int32: {type: \"number\", validate: validateInt32},\n // signed 64 bit integer\n int64: {type: \"number\", validate: validateInt64},\n // C-type float\n float: {type: \"number\", validate: validateNumber},\n // C-type double\n double: {type: \"number\", validate: validateNumber},\n // hint to the UI to hide input strings\n password: true,\n // unchecked string payload\n binary: true,\n}\n\nexport const fastFormats: DefinedFormats = {\n ...fullFormats,\n date: fmtDef(/^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/, compareDate),\n time: fmtDef(\n /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i,\n compareTime\n ),\n \"date-time\": fmtDef(\n /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\dt(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i,\n compareDateTime\n ),\n \"iso-time\": fmtDef(\n /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i,\n compareIsoTime\n ),\n \"iso-date-time\": fmtDef(\n /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i,\n compareIsoDateTime\n ),\n // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n uri: /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n \"uri-reference\": /^(?:(?:[a-z][a-z0-9+\\-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n // email (sources from jsen validator):\n // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'wilful violation')\n email:\n /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n}\n\nexport const formatNames = Object.keys(fullFormats) as FormatName[]\n\nfunction isLeapYear(year: number): boolean {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0)\n}\n\nconst DATE = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/\nconst DAYS = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]\n\nfunction date(str: string): boolean {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n const matches: string[] | null = DATE.exec(str)\n if (!matches) return false\n const year: number = +matches[1]\n const month: number = +matches[2]\n const day: number = +matches[3]\n return (\n month >= 1 &&\n month <= 12 &&\n day >= 1 &&\n day <= (month === 2 && isLeapYear(year) ? 29 : DAYS[month])\n )\n}\n\nfunction compareDate(d1: string, d2: string): number | undefined {\n if (!(d1 && d2)) return undefined\n if (d1 > d2) return 1\n if (d1 < d2) return -1\n return 0\n}\n\nconst TIME = /^(\\d\\d):(\\d\\d):(\\d\\d(?:\\.\\d+)?)(z|([+-])(\\d\\d)(?::?(\\d\\d))?)?$/i\n\nfunction getTime(strictTimeZone?: boolean): (str: string) => boolean {\n return function time(str: string): boolean {\n const matches: string[] | null = TIME.exec(str)\n if (!matches) return false\n const hr: number = +matches[1]\n const min: number = +matches[2]\n const sec: number = +matches[3]\n const tz: string | undefined = matches[4]\n const tzSign: number = matches[5] === \"-\" ? -1 : 1\n const tzH: number = +(matches[6] || 0)\n const tzM: number = +(matches[7] || 0)\n if (tzH > 23 || tzM > 59 || (strictTimeZone && !tz)) return false\n if (hr <= 23 && min <= 59 && sec < 60) return true\n // leap second\n const utcMin = min - tzM * tzSign\n const utcHr = hr - tzH * tzSign - (utcMin < 0 ? 1 : 0)\n return (utcHr === 23 || utcHr === -1) && (utcMin === 59 || utcMin === -1) && sec < 61\n }\n}\n\nfunction compareTime(s1: string, s2: string): number | undefined {\n if (!(s1 && s2)) return undefined\n const t1 = new Date(\"2020-01-01T\" + s1).valueOf()\n const t2 = new Date(\"2020-01-01T\" + s2).valueOf()\n if (!(t1 && t2)) return undefined\n return t1 - t2\n}\n\nfunction compareIsoTime(t1: string, t2: string): number | undefined {\n if (!(t1 && t2)) return undefined\n const a1 = TIME.exec(t1)\n const a2 = TIME.exec(t2)\n if (!(a1 && a2)) return undefined\n t1 = a1[1] + a1[2] + a1[3]\n t2 = a2[1] + a2[2] + a2[3]\n if (t1 > t2) return 1\n if (t1 < t2) return -1\n return 0\n}\n\nconst DATE_TIME_SEPARATOR = /t|\\s/i\nfunction getDateTime(strictTimeZone?: boolean): (str: string) => boolean {\n const time = getTime(strictTimeZone)\n\n return function date_time(str: string): boolean {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n const dateTime: string[] = str.split(DATE_TIME_SEPARATOR)\n return dateTime.length === 2 && date(dateTime[0]) && time(dateTime[1])\n }\n}\n\nfunction compareDateTime(dt1: string, dt2: string): number | undefined {\n if (!(dt1 && dt2)) return undefined\n const d1 = new Date(dt1).valueOf()\n const d2 = new Date(dt2).valueOf()\n if (!(d1 && d2)) return undefined\n return d1 - d2\n}\n\nfunction compareIsoDateTime(dt1: string, dt2: string): number | undefined {\n if (!(dt1 && dt2)) return undefined\n const [d1, t1] = dt1.split(DATE_TIME_SEPARATOR)\n const [d2, t2] = dt2.split(DATE_TIME_SEPARATOR)\n const res = compareDate(d1, d2)\n if (res === undefined) return undefined\n return res || compareTime(t1, t2)\n}\n\nconst NOT_URI_FRAGMENT = /\\/|:/\nconst URI =\n /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i\n\nfunction uri(str: string): boolean {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return NOT_URI_FRAGMENT.test(str) && URI.test(str)\n}\n\nconst BYTE = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm\n\nfunction byte(str: string): boolean {\n BYTE.lastIndex = 0\n return BYTE.test(str)\n}\n\nconst MIN_INT32 = -(2 ** 31)\nconst MAX_INT32 = 2 ** 31 - 1\n\nfunction validateInt32(value: number): boolean {\n return Number.isInteger(value) && value <= MAX_INT32 && value >= MIN_INT32\n}\n\nfunction validateInt64(value: number): boolean {\n // JSON and javascript max Int is 2**53, so any int that passes isInteger is valid for Int64\n return Number.isInteger(value)\n}\n\nfunction validateNumber(): boolean {\n return true\n}\n\nconst Z_ANCHOR = /[^\\\\]\\\\Z/\nfunction regex(str: string): boolean {\n if (Z_ANCHOR.test(str)) return false\n try {\n new RegExp(str)\n return true\n } catch (e) {\n return false\n }\n}\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","// https://github.com/ajv-validator/ajv/issues/889\nimport * as equal from \"fast-deep-equal\"\n\ntype Equal = typeof equal & {code: string}\n;(equal as Equal).code = 'require(\"ajv/dist/runtime/equal\").default'\n\nexport default equal as Equal\n","/* eslint-disable */\n// AUTO-GENERATED by scripts/generate-validator.mjs — do not edit by hand.\n// Standalone Ajv validator for takuhon.schema.json (no runtime eval).\n\"use strict\";module.exports = validate20;module.exports.default = validate20;const schema31 = {\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"$id\":\"https://takuhon.example/schemas/0.5.0/takuhon.schema.json\",\"title\":\"Takuhon Profile\",\"description\":\"Portable profile data format consumed by @takuhon/core. The canonical contract for profile content authored as takuhon.json.\",\"type\":\"object\",\"additionalProperties\":false,\"required\":[\"schemaVersion\",\"profile\",\"links\",\"careers\",\"projects\",\"skills\",\"contact\",\"settings\",\"meta\"],\"properties\":{\"schemaVersion\":{\"type\":\"string\",\"pattern\":\"^[0-9]+\\\\.[0-9]+\\\\.[0-9]+(-[a-zA-Z0-9.-]+)?$\",\"description\":\"Semantic version of the takuhon schema this document conforms to.\"},\"profile\":{\"$ref\":\"#/$defs/Profile\"},\"links\":{\"type\":\"array\",\"maxItems\":100,\"items\":{\"$ref\":\"#/$defs/Link\"}},\"careers\":{\"type\":\"array\",\"maxItems\":50,\"items\":{\"$ref\":\"#/$defs/Career\"}},\"projects\":{\"type\":\"array\",\"maxItems\":100,\"items\":{\"$ref\":\"#/$defs/Project\"}},\"skills\":{\"type\":\"array\",\"maxItems\":200,\"items\":{\"$ref\":\"#/$defs/Skill\"}},\"certifications\":{\"type\":\"array\",\"maxItems\":50,\"items\":{\"$ref\":\"#/$defs/Certification\"}},\"memberships\":{\"type\":\"array\",\"maxItems\":50,\"items\":{\"$ref\":\"#/$defs/Membership\"}},\"volunteering\":{\"type\":\"array\",\"maxItems\":50,\"items\":{\"$ref\":\"#/$defs/Volunteering\"}},\"honors\":{\"type\":\"array\",\"maxItems\":50,\"items\":{\"$ref\":\"#/$defs/Honor\"}},\"education\":{\"type\":\"array\",\"maxItems\":30,\"items\":{\"$ref\":\"#/$defs/Education\"}},\"publications\":{\"type\":\"array\",\"maxItems\":100,\"items\":{\"$ref\":\"#/$defs/Publication\"}},\"languages\":{\"type\":\"array\",\"maxItems\":30,\"items\":{\"$ref\":\"#/$defs/Language\"}},\"courses\":{\"type\":\"array\",\"maxItems\":100,\"items\":{\"$ref\":\"#/$defs/Course\"}},\"patents\":{\"type\":\"array\",\"maxItems\":50,\"items\":{\"$ref\":\"#/$defs/Patent\"}},\"testScores\":{\"type\":\"array\",\"maxItems\":30,\"items\":{\"$ref\":\"#/$defs/TestScore\"}},\"recommendations\":{\"type\":\"array\",\"maxItems\":50,\"items\":{\"$ref\":\"#/$defs/Recommendation\"}},\"contact\":{\"$ref\":\"#/$defs/Contact\"},\"settings\":{\"$ref\":\"#/$defs/Settings\"},\"meta\":{\"$ref\":\"#/$defs/Meta\"}},\"$defs\":{\"LocaleTag\":{\"type\":\"string\",\"minLength\":2,\"maxLength\":35,\"pattern\":\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\",\"description\":\"BCP-47 language tag (e.g., 'en', 'ja', 'zh-Hant', 'pt-BR').\"},\"Iso3166Alpha2\":{\"type\":\"string\",\"pattern\":\"^[A-Z]{2}$\",\"description\":\"ISO 3166-1 alpha-2 country code (uppercase, two letters).\"},\"YearMonth\":{\"type\":\"string\",\"pattern\":\"^[0-9]{4}-(0[1-9]|1[0-2])$\",\"description\":\"Year-month in 'YYYY-MM' format (Gregorian calendar).\"},\"IsoDateTime\":{\"type\":\"string\",\"format\":\"date-time\",\"description\":\"ISO 8601 date-time (e.g., 2026-05-11T12:34:56Z).\"},\"Url\":{\"type\":\"string\",\"format\":\"uri\",\"maxLength\":2048},\"Email\":{\"type\":\"string\",\"format\":\"email\",\"maxLength\":254},\"Slug\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":64,\"pattern\":\"^[a-z0-9][a-z0-9-]*$\",\"description\":\"URL-safe identifier (lowercase alphanumerics and hyphens, must start with alphanumeric).\"},\"LocalizedTitle\":{\"type\":\"object\",\"minProperties\":1,\"propertyNames\":{\"type\":\"string\",\"pattern\":\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},\"additionalProperties\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":200},\"description\":\"Map of BCP-47 locale tag to short title-like string (max 200 chars per value).\"},\"LocalizedBody\":{\"type\":\"object\",\"minProperties\":1,\"propertyNames\":{\"type\":\"string\",\"pattern\":\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},\"additionalProperties\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":5000},\"description\":\"Map of BCP-47 locale tag to body-length string (max 5000 chars per value).\"},\"LinkType\":{\"type\":\"string\",\"enum\":[\"website\",\"blog\",\"github\",\"gitlab\",\"linkedin\",\"x\",\"mastodon\",\"bluesky\",\"instagram\",\"youtube\",\"threads\",\"facebook\",\"email\",\"rss\",\"custom\"],\"description\":\"Identifies the kind of link. 'custom' requires iconUrl.\"},\"Profile\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"displayName\"],\"properties\":{\"displayName\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"tagline\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"bio\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"avatar\":{\"$ref\":\"#/$defs/Avatar\"},\"location\":{\"$ref\":\"#/$defs/Address\"}}},\"Avatar\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"url\"],\"properties\":{\"url\":{\"type\":\"string\",\"format\":\"uri-reference\",\"maxLength\":2048,\"description\":\"URL or path to the avatar image.\"},\"alt\":{\"$ref\":\"#/$defs/LocalizedTitle\"}}},\"Address\":{\"type\":\"object\",\"additionalProperties\":true,\"properties\":{\"country\":{\"$ref\":\"#/$defs/Iso3166Alpha2\"},\"region\":{\"type\":\"string\",\"maxLength\":100},\"locality\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"display\":{\"$ref\":\"#/$defs/LocalizedTitle\"}}},\"Link\":{\"type\":\"object\",\"additionalProperties\":false,\"required\":[\"id\",\"type\",\"url\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"type\":{\"$ref\":\"#/$defs/LinkType\"},\"label\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"featured\":{\"type\":\"boolean\"},\"order\":{\"type\":\"integer\",\"minimum\":0},\"iconUrl\":{\"$ref\":\"#/$defs/Url\"}},\"allOf\":[{\"if\":{\"properties\":{\"type\":{\"const\":\"custom\"}},\"required\":[\"type\"]},\"then\":{\"properties\":{\"iconUrl\":{\"$ref\":\"#/$defs/Url\"}},\"required\":[\"iconUrl\"]}}]},\"Career\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"organization\",\"role\",\"startDate\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"organization\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"role\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"startDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"endDate\":{\"anyOf\":[{\"$ref\":\"#/$defs/YearMonth\"},{\"type\":\"null\"}]},\"isCurrent\":{\"type\":\"boolean\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"location\":{\"$ref\":\"#/$defs/Address\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}},\"Project\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"title\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"title\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"tags\":{\"type\":\"array\",\"maxItems\":30,\"items\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":50}},\"relatedCareerId\":{\"$ref\":\"#/$defs/Slug\"},\"startDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"endDate\":{\"anyOf\":[{\"$ref\":\"#/$defs/YearMonth\"},{\"type\":\"null\"}]},\"highlighted\":{\"type\":\"boolean\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}},\"Skill\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"label\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"label\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100},\"category\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":64,\"description\":\"Recommended values (extensible): programming, design, business, communication, language, music, art, sports, other.\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}},\"Contact\":{\"type\":\"object\",\"additionalProperties\":true,\"properties\":{\"email\":{\"$ref\":\"#/$defs/Email\"},\"showEmail\":{\"type\":\"boolean\",\"default\":false},\"formUrl\":{\"$ref\":\"#/$defs/Url\"}}},\"Settings\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"defaultLocale\",\"availableLocales\"],\"properties\":{\"defaultLocale\":{\"$ref\":\"#/$defs/LocaleTag\"},\"fallbackLocale\":{\"$ref\":\"#/$defs/LocaleTag\"},\"availableLocales\":{\"type\":\"array\",\"minItems\":1,\"maxItems\":50,\"uniqueItems\":true,\"items\":{\"$ref\":\"#/$defs/LocaleTag\"}},\"theme\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":64,\"description\":\"UI theme identifier. 'default' is the built-in theme; adapters may add more.\"},\"showPoweredBy\":{\"type\":\"boolean\",\"default\":true,\"description\":\"Display the 'Powered by takuhon' attribution in the rendered profile.\"},\"enableJsonLd\":{\"type\":\"boolean\",\"default\":true,\"description\":\"Emit Schema.org JSON-LD on the rendered profile page.\"},\"enableApi\":{\"type\":\"boolean\",\"default\":true,\"description\":\"Expose the public read API endpoints (GET /api/profile, /api/jsonld, /api/schema, /takuhon.json).\"},\"enableAnalytics\":{\"type\":\"boolean\",\"default\":false,\"description\":\"Opt-in flag for first-party analytics. Default is false to keep takuhon privacy-respecting by default.\"},\"activity\":{\"$ref\":\"#/$defs/ActivitySettings\"}}},\"ActivitySettings\":{\"type\":\"object\",\"additionalProperties\":false,\"description\":\"Opt-in developer-activity dashboard configuration (GitHub / WakaTime). Only the owner-curated settings live here; secrets are provisioned out of band and the synced metrics are stored in a separate document, never in takuhon.json.\",\"properties\":{\"enabled\":{\"type\":\"boolean\",\"default\":false,\"description\":\"Master switch. When false (the default), the activity section is not rendered even if a snapshot exists.\"},\"github\":{\"type\":\"object\",\"additionalProperties\":false,\"required\":[\"username\"],\"properties\":{\"username\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":39,\"description\":\"GitHub login whose public activity is summarized.\"},\"showLanguages\":{\"type\":\"boolean\",\"default\":true},\"showContributions\":{\"type\":\"boolean\",\"default\":true}}},\"wakatime\":{\"type\":\"object\",\"additionalProperties\":false,\"required\":[\"username\"],\"properties\":{\"username\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":255,\"description\":\"WakaTime username whose coding-time stats are summarized.\"},\"showCodingTime\":{\"type\":\"boolean\",\"default\":true}}},\"showRank\":{\"type\":\"boolean\",\"default\":true,\"description\":\"Display the derived activity rank / badge.\"},\"refreshHintHours\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":168,\"description\":\"Advisory refresh cadence in hours. The real cadence is how often the sync step (CLI command or scheduled job) runs.\"}}},\"Meta\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"contentLicense\"],\"properties\":{\"createdAt\":{\"$ref\":\"#/$defs/IsoDateTime\"},\"updatedAt\":{\"$ref\":\"#/$defs/IsoDateTime\"},\"generator\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100,\"description\":\"Tool that produced this document (e.g. 'Takuhon', 'create-takuhon@0.1.0').\"},\"contentLicense\":{\"$ref\":\"#/$defs/ContentLicense\"},\"privacy\":{\"$ref\":\"#/$defs/MetaPrivacy\"}}},\"ContentLicense\":{\"type\":\"object\",\"additionalProperties\":false,\"required\":[\"spdxId\"],\"properties\":{\"spdxId\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":64,\"description\":\"SPDX identifier (e.g., 'CC-BY-4.0', 'CC0-1.0') or 'Proprietary'. No default; the profile owner must choose explicitly.\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"attribution\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":200},\"url\":{\"$ref\":\"#/$defs/Url\"}}},\"rights\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":1000,\"description\":\"Free-form rights statement (used when spdxId='Proprietary' or for additional notices).\"}}},\"MetaPrivacy\":{\"type\":\"object\",\"additionalProperties\":true,\"description\":\"Opt-out flags that strip personally identifying fields from public API output (GET /api/profile, /api/jsonld, /takuhon.json). Admin endpoints (PUT /api/admin/*, GET /api/admin/export) ignore these flags. Privacy-by-default: omitting the object or individual flags is equivalent to true.\",\"properties\":{\"hideCredentialIds\":{\"type\":\"boolean\",\"default\":true,\"description\":\"When true (default), strip certifications[*].credentialId from public responses.\"},\"hideEducationGrades\":{\"type\":\"boolean\",\"default\":true,\"description\":\"When true (default), strip education[*].grade from public responses.\"}}},\"Certification\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"title\",\"issuingOrganization\",\"issueDate\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"title\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"issuingOrganization\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"issueDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"expirationDate\":{\"anyOf\":[{\"$ref\":\"#/$defs/YearMonth\"},{\"type\":\"null\"}],\"description\":\"null = explicitly 'no expiration'. Omit if unknown/unstated.\"},\"credentialId\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100,\"description\":\"License or certificate number. Public exposure controlled by meta.privacy.hideCredentialIds.\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}},\"Membership\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"organization\",\"startDate\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"organization\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"role\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"startDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"endDate\":{\"anyOf\":[{\"$ref\":\"#/$defs/YearMonth\"},{\"type\":\"null\"}],\"description\":\"null = ongoing. Omit if unknown.\"},\"isCurrent\":{\"type\":\"boolean\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}},\"Volunteering\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"organization\",\"role\",\"startDate\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"organization\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"role\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"cause\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"startDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"endDate\":{\"anyOf\":[{\"$ref\":\"#/$defs/YearMonth\"},{\"type\":\"null\"}]},\"isCurrent\":{\"type\":\"boolean\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}},\"Honor\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"title\",\"issuer\",\"date\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"title\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"issuer\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"date\":{\"$ref\":\"#/$defs/YearMonth\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}},\"Education\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"institution\",\"startDate\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"institution\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"degree\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"fieldOfStudy\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"grade\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":50,\"description\":\"Free-form grade / class / GPA. Public exposure controlled by meta.privacy.hideEducationGrades.\"},\"startDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"endDate\":{\"anyOf\":[{\"$ref\":\"#/$defs/YearMonth\"},{\"type\":\"null\"}],\"description\":\"null = currently enrolled.\"},\"isCurrent\":{\"type\":\"boolean\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}},\"Publication\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"title\",\"date\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"title\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"publisher\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"date\":{\"$ref\":\"#/$defs/YearMonth\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"doi\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":200,\"description\":\"DOI identifier (e.g. '10.1145/3548643.3548644'). The full URL goes in 'url'.\"},\"coAuthors\":{\"type\":\"array\",\"maxItems\":50,\"items\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100},\"description\":\"Co-author names in original script. Excludes the profile owner.\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}},\"Language\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"language\",\"proficiency\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"language\":{\"$ref\":\"#/$defs/LocaleTag\"},\"displayName\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"proficiency\":{\"type\":\"string\",\"enum\":[\"native\",\"fluent\",\"professional\",\"intermediate\",\"basic\"],\"description\":\"LinkedIn-compatible 5-level proficiency.\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}},\"Course\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"title\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"title\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"provider\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"courseNumber\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":50},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"completionDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"certificateUrl\":{\"$ref\":\"#/$defs/Url\"},\"relatedEducationId\":{\"$ref\":\"#/$defs/Slug\",\"description\":\"Optional reference to an education[].id (e.g. for university coursework).\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}},\"Patent\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"title\",\"patentNumber\",\"status\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"title\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"patentNumber\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100},\"office\":{\"type\":\"string\",\"maxLength\":100,\"description\":\"Patent office name (e.g. 'USPTO', 'JPO', 'EPO').\"},\"status\":{\"type\":\"string\",\"enum\":[\"pending\",\"issued\",\"expired\",\"abandoned\"]},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"filingDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"grantDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"coInventors\":{\"type\":\"array\",\"maxItems\":20,\"items\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100}},\"order\":{\"type\":\"integer\",\"minimum\":0}}},\"TestScore\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"title\",\"score\",\"date\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"title\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"score\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":50,\"description\":\"Free-form score string (e.g. '112 / 120', '330', 'N1 Pass', or a percentile). The validator does not interpret its contents.\"},\"date\":{\"$ref\":\"#/$defs/YearMonth\"},\"relatedEducationId\":{\"$ref\":\"#/$defs/Slug\",\"description\":\"Optional reference to an education[].id (e.g. for a university course exam).\"},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}},\"Recommendation\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"body\",\"author\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"body\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"author\":{\"$ref\":\"#/$defs/RecommendationAuthor\"},\"relationship\":{\"$ref\":\"#/$defs/LocalizedTitle\",\"description\":\"How the recommender relates to the profile owner (e.g. 'managed directly', 'worked together').\"},\"date\":{\"$ref\":\"#/$defs/YearMonth\"},\"relatedCareerId\":{\"$ref\":\"#/$defs/Slug\",\"description\":\"Optional reference to a careers[].id (the position the recommendation pertains to).\"},\"relatedEducationId\":{\"$ref\":\"#/$defs/Slug\",\"description\":\"Optional reference to an education[].id (e.g. a recommendation from a professor).\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}},\"RecommendationAuthor\":{\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"name\"],\"properties\":{\"name\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100,\"description\":\"Recommender's name, in its original script. Owner-curated; takuhon does not verify it.\"},\"headline\":{\"$ref\":\"#/$defs/LocalizedTitle\",\"description\":\"Recommender's title / role / organization at the time of the recommendation.\"},\"url\":{\"$ref\":\"#/$defs/Url\",\"description\":\"Link to the recommender's profile, for external verification by the reader.\"}}}}};const func1 = Object.prototype.hasOwnProperty;const pattern4 = new RegExp(\"^[0-9]+\\\\.[0-9]+\\\\.[0-9]+(-[a-zA-Z0-9.-]+)?$\", \"u\");const schema32 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"displayName\"],\"properties\":{\"displayName\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"tagline\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"bio\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"avatar\":{\"$ref\":\"#/$defs/Avatar\"},\"location\":{\"$ref\":\"#/$defs/Address\"}}};const schema33 = {\"type\":\"object\",\"minProperties\":1,\"propertyNames\":{\"type\":\"string\",\"pattern\":\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},\"additionalProperties\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":200},\"description\":\"Map of BCP-47 locale tag to short title-like string (max 200 chars per value).\"};const schema35 = {\"type\":\"object\",\"minProperties\":1,\"propertyNames\":{\"type\":\"string\",\"pattern\":\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},\"additionalProperties\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":5000},\"description\":\"Map of BCP-47 locale tag to body-length string (max 5000 chars per value).\"};const pattern5 = new RegExp(\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\", \"u\");const func2 = require(\"ajv/dist/runtime/ucs2length\").default;const schema36 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"url\"],\"properties\":{\"url\":{\"type\":\"string\",\"format\":\"uri-reference\",\"maxLength\":2048,\"description\":\"URL or path to the avatar image.\"},\"alt\":{\"$ref\":\"#/$defs/LocalizedTitle\"}}};const formats0 = /^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'\"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function validate22(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate22.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.url === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"url\"},message:\"must have required property '\"+\"url\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.url !== undefined){let data0 = data.url;if(typeof data0 === \"string\"){if(func2(data0) > 2048){const err1 = {instancePath:instancePath+\"/url\",schemaPath:\"#/properties/url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(!(formats0.test(data0))){const err2 = {instancePath:instancePath+\"/url\",schemaPath:\"#/properties/url/format\",keyword:\"format\",params:{format: \"uri-reference\"},message:\"must match format \\\"\"+\"uri-reference\"+\"\\\"\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}else {const err3 = {instancePath:instancePath+\"/url\",schemaPath:\"#/properties/url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}if(data.alt !== undefined){let data1 = data.alt;if(data1 && typeof data1 == \"object\" && !Array.isArray(data1)){if(Object.keys(data1).length < 1){const err4 = {instancePath:instancePath+\"/alt\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}for(const key0 in data1){const _errs7 = errors;if(typeof key0 === \"string\"){if(!pattern5.test(key0)){const err5 = {instancePath:instancePath+\"/alt\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key0};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}else {const err6 = {instancePath:instancePath+\"/alt\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key0};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}var valid2 = _errs7 === errors;if(!valid2){const err7 = {instancePath:instancePath+\"/alt\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key0},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}for(const key1 in data1){let data2 = data1[key1];if(typeof data2 === \"string\"){if(func2(data2) > 200){const err8 = {instancePath:instancePath+\"/alt/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}if(func2(data2) < 1){const err9 = {instancePath:instancePath+\"/alt/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}else {const err10 = {instancePath:instancePath+\"/alt/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}}else {const err11 = {instancePath:instancePath+\"/alt\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}}else {const err12 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}validate22.errors = vErrors;return errors === 0;}validate22.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema38 = {\"type\":\"object\",\"additionalProperties\":true,\"properties\":{\"country\":{\"$ref\":\"#/$defs/Iso3166Alpha2\"},\"region\":{\"type\":\"string\",\"maxLength\":100},\"locality\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"display\":{\"$ref\":\"#/$defs/LocalizedTitle\"}}};const schema39 = {\"type\":\"string\",\"pattern\":\"^[A-Z]{2}$\",\"description\":\"ISO 3166-1 alpha-2 country code (uppercase, two letters).\"};const pattern9 = new RegExp(\"^[A-Z]{2}$\", \"u\");function validate24(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate24.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.country !== undefined){let data0 = data.country;if(typeof data0 === \"string\"){if(!pattern9.test(data0)){const err0 = {instancePath:instancePath+\"/country\",schemaPath:\"#/$defs/Iso3166Alpha2/pattern\",keyword:\"pattern\",params:{pattern: \"^[A-Z]{2}$\"},message:\"must match pattern \\\"\"+\"^[A-Z]{2}$\"+\"\\\"\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}else {const err1 = {instancePath:instancePath+\"/country\",schemaPath:\"#/$defs/Iso3166Alpha2/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}if(data.region !== undefined){let data1 = data.region;if(typeof data1 === \"string\"){if(func2(data1) > 100){const err2 = {instancePath:instancePath+\"/region\",schemaPath:\"#/properties/region/maxLength\",keyword:\"maxLength\",params:{limit: 100},message:\"must NOT have more than 100 characters\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}else {const err3 = {instancePath:instancePath+\"/region\",schemaPath:\"#/properties/region/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}if(data.locality !== undefined){let data2 = data.locality;if(data2 && typeof data2 == \"object\" && !Array.isArray(data2)){if(Object.keys(data2).length < 1){const err4 = {instancePath:instancePath+\"/locality\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}for(const key0 in data2){const _errs10 = errors;if(typeof key0 === \"string\"){if(!pattern5.test(key0)){const err5 = {instancePath:instancePath+\"/locality\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key0};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}else {const err6 = {instancePath:instancePath+\"/locality\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key0};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}var valid3 = _errs10 === errors;if(!valid3){const err7 = {instancePath:instancePath+\"/locality\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key0},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}for(const key1 in data2){let data3 = data2[key1];if(typeof data3 === \"string\"){if(func2(data3) > 200){const err8 = {instancePath:instancePath+\"/locality/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}if(func2(data3) < 1){const err9 = {instancePath:instancePath+\"/locality/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}else {const err10 = {instancePath:instancePath+\"/locality/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}}else {const err11 = {instancePath:instancePath+\"/locality\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}if(data.display !== undefined){let data4 = data.display;if(data4 && typeof data4 == \"object\" && !Array.isArray(data4)){if(Object.keys(data4).length < 1){const err12 = {instancePath:instancePath+\"/display\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}for(const key2 in data4){const _errs18 = errors;if(typeof key2 === \"string\"){if(!pattern5.test(key2)){const err13 = {instancePath:instancePath+\"/display\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key2};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}else {const err14 = {instancePath:instancePath+\"/display\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key2};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}var valid6 = _errs18 === errors;if(!valid6){const err15 = {instancePath:instancePath+\"/display\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key2},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}for(const key3 in data4){let data5 = data4[key3];if(typeof data5 === \"string\"){if(func2(data5) > 200){const err16 = {instancePath:instancePath+\"/display/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}if(func2(data5) < 1){const err17 = {instancePath:instancePath+\"/display/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}else {const err18 = {instancePath:instancePath+\"/display/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}}else {const err19 = {instancePath:instancePath+\"/display\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}}else {const err20 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}validate24.errors = vErrors;return errors === 0;}validate24.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};function validate21(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate21.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.displayName === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"displayName\"},message:\"must have required property '\"+\"displayName\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.displayName !== undefined){let data0 = data.displayName;if(data0 && typeof data0 == \"object\" && !Array.isArray(data0)){if(Object.keys(data0).length < 1){const err1 = {instancePath:instancePath+\"/displayName\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}for(const key0 in data0){const _errs5 = errors;if(typeof key0 === \"string\"){if(!pattern5.test(key0)){const err2 = {instancePath:instancePath+\"/displayName\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key0};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}else {const err3 = {instancePath:instancePath+\"/displayName\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key0};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}var valid2 = _errs5 === errors;if(!valid2){const err4 = {instancePath:instancePath+\"/displayName\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key0},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}for(const key1 in data0){let data1 = data0[key1];if(typeof data1 === \"string\"){if(func2(data1) > 200){const err5 = {instancePath:instancePath+\"/displayName/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(func2(data1) < 1){const err6 = {instancePath:instancePath+\"/displayName/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}else {const err7 = {instancePath:instancePath+\"/displayName/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}}else {const err8 = {instancePath:instancePath+\"/displayName\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}if(data.tagline !== undefined){let data2 = data.tagline;if(data2 && typeof data2 == \"object\" && !Array.isArray(data2)){if(Object.keys(data2).length < 1){const err9 = {instancePath:instancePath+\"/tagline\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}for(const key2 in data2){const _errs13 = errors;if(typeof key2 === \"string\"){if(!pattern5.test(key2)){const err10 = {instancePath:instancePath+\"/tagline\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key2};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}else {const err11 = {instancePath:instancePath+\"/tagline\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key2};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}var valid5 = _errs13 === errors;if(!valid5){const err12 = {instancePath:instancePath+\"/tagline\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key2},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}for(const key3 in data2){let data3 = data2[key3];if(typeof data3 === \"string\"){if(func2(data3) > 200){const err13 = {instancePath:instancePath+\"/tagline/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}if(func2(data3) < 1){const err14 = {instancePath:instancePath+\"/tagline/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}else {const err15 = {instancePath:instancePath+\"/tagline/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}}else {const err16 = {instancePath:instancePath+\"/tagline\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}if(data.bio !== undefined){let data4 = data.bio;if(data4 && typeof data4 == \"object\" && !Array.isArray(data4)){if(Object.keys(data4).length < 1){const err17 = {instancePath:instancePath+\"/bio\",schemaPath:\"#/$defs/LocalizedBody/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}for(const key4 in data4){const _errs21 = errors;if(typeof key4 === \"string\"){if(!pattern5.test(key4)){const err18 = {instancePath:instancePath+\"/bio\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key4};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}else {const err19 = {instancePath:instancePath+\"/bio\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key4};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}var valid8 = _errs21 === errors;if(!valid8){const err20 = {instancePath:instancePath+\"/bio\",schemaPath:\"#/$defs/LocalizedBody/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key4},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}for(const key5 in data4){let data5 = data4[key5];if(typeof data5 === \"string\"){if(func2(data5) > 5000){const err21 = {instancePath:instancePath+\"/bio/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 5000},message:\"must NOT have more than 5000 characters\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}if(func2(data5) < 1){const err22 = {instancePath:instancePath+\"/bio/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}else {const err23 = {instancePath:instancePath+\"/bio/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}}else {const err24 = {instancePath:instancePath+\"/bio\",schemaPath:\"#/$defs/LocalizedBody/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}if(data.avatar !== undefined){if(!(validate22(data.avatar, {instancePath:instancePath+\"/avatar\",parentData:data,parentDataProperty:\"avatar\",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate22.errors : vErrors.concat(validate22.errors);errors = vErrors.length;}}if(data.location !== undefined){if(!(validate24(data.location, {instancePath:instancePath+\"/location\",parentData:data,parentDataProperty:\"location\",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate24.errors : vErrors.concat(validate24.errors);errors = vErrors.length;}}}else {const err25 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}validate21.errors = vErrors;return errors === 0;}validate21.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema42 = {\"type\":\"object\",\"additionalProperties\":false,\"required\":[\"id\",\"type\",\"url\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"type\":{\"$ref\":\"#/$defs/LinkType\"},\"label\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"featured\":{\"type\":\"boolean\"},\"order\":{\"type\":\"integer\",\"minimum\":0},\"iconUrl\":{\"$ref\":\"#/$defs/Url\"}},\"allOf\":[{\"if\":{\"properties\":{\"type\":{\"const\":\"custom\"}},\"required\":[\"type\"]},\"then\":{\"properties\":{\"iconUrl\":{\"$ref\":\"#/$defs/Url\"}},\"required\":[\"iconUrl\"]}}]};const schema43 = {\"type\":\"string\",\"format\":\"uri\",\"maxLength\":2048};const schema44 = {\"type\":\"string\",\"minLength\":1,\"maxLength\":64,\"pattern\":\"^[a-z0-9][a-z0-9-]*$\",\"description\":\"URL-safe identifier (lowercase alphanumerics and hyphens, must start with alphanumeric).\"};const schema45 = {\"type\":\"string\",\"enum\":[\"website\",\"blog\",\"github\",\"gitlab\",\"linkedin\",\"x\",\"mastodon\",\"bluesky\",\"instagram\",\"youtube\",\"threads\",\"facebook\",\"email\",\"rss\",\"custom\"],\"description\":\"Identifies the kind of link. 'custom' requires iconUrl.\"};const formats2 = require(\"ajv-formats/dist/formats\").fullFormats.uri;const pattern12 = new RegExp(\"^[a-z0-9][a-z0-9-]*$\", \"u\");function validate27(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate27.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs2 = errors;let valid1 = true;const _errs3 = errors;if(data && typeof data == \"object\" && !Array.isArray(data)){let missing0;if((data.type === undefined) && (missing0 = \"type\")){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}else {if(data.type !== undefined){if(\"custom\" !== data.type){const err1 = {};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}}}var _valid0 = _errs3 === errors;errors = _errs2;if(vErrors !== null){if(_errs2){vErrors.length = _errs2;}else {vErrors = null;}}if(_valid0){const _errs5 = errors;if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.iconUrl === undefined){const err2 = {instancePath,schemaPath:\"#/allOf/0/then/required\",keyword:\"required\",params:{missingProperty: \"iconUrl\"},message:\"must have required property '\"+\"iconUrl\"+\"'\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.iconUrl !== undefined){let data1 = data.iconUrl;if(typeof data1 === \"string\"){if(func2(data1) > 2048){const err3 = {instancePath:instancePath+\"/iconUrl\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(!(formats2(data1))){const err4 = {instancePath:instancePath+\"/iconUrl\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}else {const err5 = {instancePath:instancePath+\"/iconUrl\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}}var _valid0 = _errs5 === errors;valid1 = _valid0;if(valid1){var props0 = {};props0.iconUrl = true;props0.type = true;}}if(!valid1){const err6 = {instancePath,schemaPath:\"#/allOf/0/if\",keyword:\"if\",params:{failingKeyword: \"then\"},message:\"must match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.id === undefined){const err7 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"id\"},message:\"must have required property '\"+\"id\"+\"'\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}if(data.type === undefined){const err8 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"type\"},message:\"must have required property '\"+\"type\"+\"'\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}if(data.url === undefined){const err9 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"url\"},message:\"must have required property '\"+\"url\"+\"'\"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}for(const key0 in data){if(!(((((((key0 === \"id\") || (key0 === \"type\")) || (key0 === \"label\")) || (key0 === \"url\")) || (key0 === \"featured\")) || (key0 === \"order\")) || (key0 === \"iconUrl\"))){const err10 = {instancePath,schemaPath:\"#/additionalProperties\",keyword:\"additionalProperties\",params:{additionalProperty: key0},message:\"must NOT have additional properties\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}if(data.id !== undefined){let data2 = data.id;if(typeof data2 === \"string\"){if(func2(data2) > 64){const err11 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}if(func2(data2) < 1){const err12 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}if(!pattern12.test(data2)){const err13 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}else {const err14 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}if(data.type !== undefined){let data3 = data.type;if(typeof data3 !== \"string\"){const err15 = {instancePath:instancePath+\"/type\",schemaPath:\"#/$defs/LinkType/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}if(!(((((((((((((((data3 === \"website\") || (data3 === \"blog\")) || (data3 === \"github\")) || (data3 === \"gitlab\")) || (data3 === \"linkedin\")) || (data3 === \"x\")) || (data3 === \"mastodon\")) || (data3 === \"bluesky\")) || (data3 === \"instagram\")) || (data3 === \"youtube\")) || (data3 === \"threads\")) || (data3 === \"facebook\")) || (data3 === \"email\")) || (data3 === \"rss\")) || (data3 === \"custom\"))){const err16 = {instancePath:instancePath+\"/type\",schemaPath:\"#/$defs/LinkType/enum\",keyword:\"enum\",params:{allowedValues: schema45.enum},message:\"must be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}if(data.label !== undefined){let data4 = data.label;if(data4 && typeof data4 == \"object\" && !Array.isArray(data4)){if(Object.keys(data4).length < 1){const err17 = {instancePath:instancePath+\"/label\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}for(const key1 in data4){const _errs19 = errors;if(typeof key1 === \"string\"){if(!pattern5.test(key1)){const err18 = {instancePath:instancePath+\"/label\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key1};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}else {const err19 = {instancePath:instancePath+\"/label\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key1};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}var valid9 = _errs19 === errors;if(!valid9){const err20 = {instancePath:instancePath+\"/label\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key1},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}for(const key2 in data4){let data5 = data4[key2];if(typeof data5 === \"string\"){if(func2(data5) > 200){const err21 = {instancePath:instancePath+\"/label/\" + key2.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}if(func2(data5) < 1){const err22 = {instancePath:instancePath+\"/label/\" + key2.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}else {const err23 = {instancePath:instancePath+\"/label/\" + key2.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}}else {const err24 = {instancePath:instancePath+\"/label\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}if(data.url !== undefined){let data6 = data.url;if(typeof data6 === \"string\"){if(func2(data6) > 2048){const err25 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}if(!(formats2(data6))){const err26 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}else {const err27 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}}if(data.featured !== undefined){if(typeof data.featured !== \"boolean\"){const err28 = {instancePath:instancePath+\"/featured\",schemaPath:\"#/properties/featured/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}}if(data.order !== undefined){let data8 = data.order;if(!(((typeof data8 == \"number\") && (!(data8 % 1) && !isNaN(data8))) && (isFinite(data8)))){const err29 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}if((typeof data8 == \"number\") && (isFinite(data8))){if(data8 < 0 || isNaN(data8)){const err30 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 0},message:\"must be >= 0\"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}}}if(data.iconUrl !== undefined){let data9 = data.iconUrl;if(typeof data9 === \"string\"){if(func2(data9) > 2048){const err31 = {instancePath:instancePath+\"/iconUrl\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}if(!(formats2(data9))){const err32 = {instancePath:instancePath+\"/iconUrl\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}else {const err33 = {instancePath:instancePath+\"/iconUrl\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}}else {const err34 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}validate27.errors = vErrors;return errors === 0;}validate27.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema49 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"organization\",\"role\",\"startDate\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"organization\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"role\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"startDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"endDate\":{\"anyOf\":[{\"$ref\":\"#/$defs/YearMonth\"},{\"type\":\"null\"}]},\"isCurrent\":{\"type\":\"boolean\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"location\":{\"$ref\":\"#/$defs/Address\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}};const schema54 = {\"type\":\"string\",\"pattern\":\"^[0-9]{4}-(0[1-9]|1[0-2])$\",\"description\":\"Year-month in 'YYYY-MM' format (Gregorian calendar).\"};const pattern18 = new RegExp(\"^[0-9]{4}-(0[1-9]|1[0-2])$\", \"u\");function validate29(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate29.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.id === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"id\"},message:\"must have required property '\"+\"id\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.organization === undefined){const err1 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"organization\"},message:\"must have required property '\"+\"organization\"+\"'\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.role === undefined){const err2 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"role\"},message:\"must have required property '\"+\"role\"+\"'\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.startDate === undefined){const err3 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"startDate\"},message:\"must have required property '\"+\"startDate\"+\"'\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data.id !== undefined){let data0 = data.id;if(typeof data0 === \"string\"){if(func2(data0) > 64){const err4 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(func2(data0) < 1){const err5 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(!pattern12.test(data0)){const err6 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}else {const err7 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}if(data.organization !== undefined){let data1 = data.organization;if(data1 && typeof data1 == \"object\" && !Array.isArray(data1)){if(Object.keys(data1).length < 1){const err8 = {instancePath:instancePath+\"/organization\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}for(const key0 in data1){const _errs8 = errors;if(typeof key0 === \"string\"){if(!pattern5.test(key0)){const err9 = {instancePath:instancePath+\"/organization\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key0};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}else {const err10 = {instancePath:instancePath+\"/organization\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key0};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}var valid3 = _errs8 === errors;if(!valid3){const err11 = {instancePath:instancePath+\"/organization\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key0},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}for(const key1 in data1){let data2 = data1[key1];if(typeof data2 === \"string\"){if(func2(data2) > 200){const err12 = {instancePath:instancePath+\"/organization/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}if(func2(data2) < 1){const err13 = {instancePath:instancePath+\"/organization/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}else {const err14 = {instancePath:instancePath+\"/organization/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}}else {const err15 = {instancePath:instancePath+\"/organization\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}if(data.role !== undefined){let data3 = data.role;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if(Object.keys(data3).length < 1){const err16 = {instancePath:instancePath+\"/role\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}for(const key2 in data3){const _errs16 = errors;if(typeof key2 === \"string\"){if(!pattern5.test(key2)){const err17 = {instancePath:instancePath+\"/role\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key2};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}else {const err18 = {instancePath:instancePath+\"/role\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key2};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}var valid6 = _errs16 === errors;if(!valid6){const err19 = {instancePath:instancePath+\"/role\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key2},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}for(const key3 in data3){let data4 = data3[key3];if(typeof data4 === \"string\"){if(func2(data4) > 200){const err20 = {instancePath:instancePath+\"/role/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}if(func2(data4) < 1){const err21 = {instancePath:instancePath+\"/role/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}else {const err22 = {instancePath:instancePath+\"/role/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}}else {const err23 = {instancePath:instancePath+\"/role\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}if(data.description !== undefined){let data5 = data.description;if(data5 && typeof data5 == \"object\" && !Array.isArray(data5)){if(Object.keys(data5).length < 1){const err24 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}for(const key4 in data5){const _errs24 = errors;if(typeof key4 === \"string\"){if(!pattern5.test(key4)){const err25 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key4};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}}else {const err26 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key4};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}var valid9 = _errs24 === errors;if(!valid9){const err27 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key4},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}}for(const key5 in data5){let data6 = data5[key5];if(typeof data6 === \"string\"){if(func2(data6) > 5000){const err28 = {instancePath:instancePath+\"/description/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 5000},message:\"must NOT have more than 5000 characters\"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}if(func2(data6) < 1){const err29 = {instancePath:instancePath+\"/description/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}}else {const err30 = {instancePath:instancePath+\"/description/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}}}else {const err31 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}}if(data.startDate !== undefined){let data7 = data.startDate;if(typeof data7 === \"string\"){if(!pattern18.test(data7)){const err32 = {instancePath:instancePath+\"/startDate\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}else {const err33 = {instancePath:instancePath+\"/startDate\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}if(data.endDate !== undefined){let data8 = data.endDate;const _errs33 = errors;let valid12 = false;const _errs34 = errors;if(typeof data8 === \"string\"){if(!pattern18.test(data8)){const err34 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}}else {const err35 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}var _valid0 = _errs34 === errors;valid12 = valid12 || _valid0;const _errs37 = errors;if(data8 !== null){const err36 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/properties/endDate/anyOf/1/type\",keyword:\"type\",params:{type: \"null\"},message:\"must be null\"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}var _valid0 = _errs37 === errors;valid12 = valid12 || _valid0;if(!valid12){const err37 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/properties/endDate/anyOf\",keyword:\"anyOf\",params:{},message:\"must match a schema in anyOf\"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}else {errors = _errs33;if(vErrors !== null){if(_errs33){vErrors.length = _errs33;}else {vErrors = null;}}}}if(data.isCurrent !== undefined){if(typeof data.isCurrent !== \"boolean\"){const err38 = {instancePath:instancePath+\"/isCurrent\",schemaPath:\"#/properties/isCurrent/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}}if(data.url !== undefined){let data10 = data.url;if(typeof data10 === \"string\"){if(func2(data10) > 2048){const err39 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}if(!(formats2(data10))){const err40 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}}else {const err41 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;}}if(data.location !== undefined){if(!(validate24(data.location, {instancePath:instancePath+\"/location\",parentData:data,parentDataProperty:\"location\",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate24.errors : vErrors.concat(validate24.errors);errors = vErrors.length;}}if(data.order !== undefined){let data12 = data.order;if(!(((typeof data12 == \"number\") && (!(data12 % 1) && !isNaN(data12))) && (isFinite(data12)))){const err42 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"};if(vErrors === null){vErrors = [err42];}else {vErrors.push(err42);}errors++;}if((typeof data12 == \"number\") && (isFinite(data12))){if(data12 < 0 || isNaN(data12)){const err43 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 0},message:\"must be >= 0\"};if(vErrors === null){vErrors = [err43];}else {vErrors.push(err43);}errors++;}}}}else {const err44 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err44];}else {vErrors.push(err44);}errors++;}validate29.errors = vErrors;return errors === 0;}validate29.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema57 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"title\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"title\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"tags\":{\"type\":\"array\",\"maxItems\":30,\"items\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":50}},\"relatedCareerId\":{\"$ref\":\"#/$defs/Slug\"},\"startDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"endDate\":{\"anyOf\":[{\"$ref\":\"#/$defs/YearMonth\"},{\"type\":\"null\"}]},\"highlighted\":{\"type\":\"boolean\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}};function validate32(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate32.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.id === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"id\"},message:\"must have required property '\"+\"id\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.title === undefined){const err1 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"title\"},message:\"must have required property '\"+\"title\"+\"'\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.id !== undefined){let data0 = data.id;if(typeof data0 === \"string\"){if(func2(data0) > 64){const err2 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(func2(data0) < 1){const err3 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(!pattern12.test(data0)){const err4 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}else {const err5 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}if(data.title !== undefined){let data1 = data.title;if(data1 && typeof data1 == \"object\" && !Array.isArray(data1)){if(Object.keys(data1).length < 1){const err6 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}for(const key0 in data1){const _errs8 = errors;if(typeof key0 === \"string\"){if(!pattern5.test(key0)){const err7 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key0};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}else {const err8 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key0};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}var valid3 = _errs8 === errors;if(!valid3){const err9 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key0},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}for(const key1 in data1){let data2 = data1[key1];if(typeof data2 === \"string\"){if(func2(data2) > 200){const err10 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}if(func2(data2) < 1){const err11 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}else {const err12 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}}else {const err13 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}if(data.description !== undefined){let data3 = data.description;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if(Object.keys(data3).length < 1){const err14 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}for(const key2 in data3){const _errs16 = errors;if(typeof key2 === \"string\"){if(!pattern5.test(key2)){const err15 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key2};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}else {const err16 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key2};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}var valid6 = _errs16 === errors;if(!valid6){const err17 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key2},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}for(const key3 in data3){let data4 = data3[key3];if(typeof data4 === \"string\"){if(func2(data4) > 5000){const err18 = {instancePath:instancePath+\"/description/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 5000},message:\"must NOT have more than 5000 characters\"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}if(func2(data4) < 1){const err19 = {instancePath:instancePath+\"/description/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}else {const err20 = {instancePath:instancePath+\"/description/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}}else {const err21 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}if(data.url !== undefined){let data5 = data.url;if(typeof data5 === \"string\"){if(func2(data5) > 2048){const err22 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}if(!(formats2(data5))){const err23 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}else {const err24 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}if(data.tags !== undefined){let data6 = data.tags;if(Array.isArray(data6)){if(data6.length > 30){const err25 = {instancePath:instancePath+\"/tags\",schemaPath:\"#/properties/tags/maxItems\",keyword:\"maxItems\",params:{limit: 30},message:\"must NOT have more than 30 items\"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}const len0 = data6.length;for(let i0=0; i0<len0; i0++){let data7 = data6[i0];if(typeof data7 === \"string\"){if(func2(data7) > 50){const err26 = {instancePath:instancePath+\"/tags/\" + i0,schemaPath:\"#/properties/tags/items/maxLength\",keyword:\"maxLength\",params:{limit: 50},message:\"must NOT have more than 50 characters\"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}if(func2(data7) < 1){const err27 = {instancePath:instancePath+\"/tags/\" + i0,schemaPath:\"#/properties/tags/items/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}}else {const err28 = {instancePath:instancePath+\"/tags/\" + i0,schemaPath:\"#/properties/tags/items/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}}}else {const err29 = {instancePath:instancePath+\"/tags\",schemaPath:\"#/properties/tags/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}}if(data.relatedCareerId !== undefined){let data8 = data.relatedCareerId;if(typeof data8 === \"string\"){if(func2(data8) > 64){const err30 = {instancePath:instancePath+\"/relatedCareerId\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}if(func2(data8) < 1){const err31 = {instancePath:instancePath+\"/relatedCareerId\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}if(!pattern12.test(data8)){const err32 = {instancePath:instancePath+\"/relatedCareerId\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}else {const err33 = {instancePath:instancePath+\"/relatedCareerId\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}if(data.startDate !== undefined){let data9 = data.startDate;if(typeof data9 === \"string\"){if(!pattern18.test(data9)){const err34 = {instancePath:instancePath+\"/startDate\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}}else {const err35 = {instancePath:instancePath+\"/startDate\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}}if(data.endDate !== undefined){let data10 = data.endDate;const _errs35 = errors;let valid13 = false;const _errs36 = errors;if(typeof data10 === \"string\"){if(!pattern18.test(data10)){const err36 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}}else {const err37 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}var _valid0 = _errs36 === errors;valid13 = valid13 || _valid0;const _errs39 = errors;if(data10 !== null){const err38 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/properties/endDate/anyOf/1/type\",keyword:\"type\",params:{type: \"null\"},message:\"must be null\"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}var _valid0 = _errs39 === errors;valid13 = valid13 || _valid0;if(!valid13){const err39 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/properties/endDate/anyOf\",keyword:\"anyOf\",params:{},message:\"must match a schema in anyOf\"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}else {errors = _errs35;if(vErrors !== null){if(_errs35){vErrors.length = _errs35;}else {vErrors = null;}}}}if(data.highlighted !== undefined){if(typeof data.highlighted !== \"boolean\"){const err40 = {instancePath:instancePath+\"/highlighted\",schemaPath:\"#/properties/highlighted/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}}if(data.order !== undefined){let data12 = data.order;if(!(((typeof data12 == \"number\") && (!(data12 % 1) && !isNaN(data12))) && (isFinite(data12)))){const err41 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;}if((typeof data12 == \"number\") && (isFinite(data12))){if(data12 < 0 || isNaN(data12)){const err42 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 0},message:\"must be >= 0\"};if(vErrors === null){vErrors = [err42];}else {vErrors.push(err42);}errors++;}}}}else {const err43 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err43];}else {vErrors.push(err43);}errors++;}validate32.errors = vErrors;return errors === 0;}validate32.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema65 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"label\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"label\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100},\"category\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":64,\"description\":\"Recommended values (extensible): programming, design, business, communication, language, music, art, sports, other.\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}};function validate34(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate34.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.id === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"id\"},message:\"must have required property '\"+\"id\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.label === undefined){const err1 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"label\"},message:\"must have required property '\"+\"label\"+\"'\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.id !== undefined){let data0 = data.id;if(typeof data0 === \"string\"){if(func2(data0) > 64){const err2 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(func2(data0) < 1){const err3 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(!pattern12.test(data0)){const err4 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}else {const err5 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}if(data.label !== undefined){let data1 = data.label;if(typeof data1 === \"string\"){if(func2(data1) > 100){const err6 = {instancePath:instancePath+\"/label\",schemaPath:\"#/properties/label/maxLength\",keyword:\"maxLength\",params:{limit: 100},message:\"must NOT have more than 100 characters\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}if(func2(data1) < 1){const err7 = {instancePath:instancePath+\"/label\",schemaPath:\"#/properties/label/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}else {const err8 = {instancePath:instancePath+\"/label\",schemaPath:\"#/properties/label/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}if(data.category !== undefined){let data2 = data.category;if(typeof data2 === \"string\"){if(func2(data2) > 64){const err9 = {instancePath:instancePath+\"/category\",schemaPath:\"#/properties/category/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}if(func2(data2) < 1){const err10 = {instancePath:instancePath+\"/category\",schemaPath:\"#/properties/category/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}else {const err11 = {instancePath:instancePath+\"/category\",schemaPath:\"#/properties/category/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}if(data.order !== undefined){let data3 = data.order;if(!(((typeof data3 == \"number\") && (!(data3 % 1) && !isNaN(data3))) && (isFinite(data3)))){const err12 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}if((typeof data3 == \"number\") && (isFinite(data3))){if(data3 < 0 || isNaN(data3)){const err13 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 0},message:\"must be >= 0\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}}}else {const err14 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}validate34.errors = vErrors;return errors === 0;}validate34.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema67 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"title\",\"issuingOrganization\",\"issueDate\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"title\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"issuingOrganization\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"issueDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"expirationDate\":{\"anyOf\":[{\"$ref\":\"#/$defs/YearMonth\"},{\"type\":\"null\"}],\"description\":\"null = explicitly 'no expiration'. Omit if unknown/unstated.\"},\"credentialId\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100,\"description\":\"License or certificate number. Public exposure controlled by meta.privacy.hideCredentialIds.\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}};function validate36(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate36.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.id === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"id\"},message:\"must have required property '\"+\"id\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.title === undefined){const err1 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"title\"},message:\"must have required property '\"+\"title\"+\"'\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.issuingOrganization === undefined){const err2 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"issuingOrganization\"},message:\"must have required property '\"+\"issuingOrganization\"+\"'\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.issueDate === undefined){const err3 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"issueDate\"},message:\"must have required property '\"+\"issueDate\"+\"'\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data.id !== undefined){let data0 = data.id;if(typeof data0 === \"string\"){if(func2(data0) > 64){const err4 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(func2(data0) < 1){const err5 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(!pattern12.test(data0)){const err6 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}else {const err7 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}if(data.title !== undefined){let data1 = data.title;if(data1 && typeof data1 == \"object\" && !Array.isArray(data1)){if(Object.keys(data1).length < 1){const err8 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}for(const key0 in data1){const _errs8 = errors;if(typeof key0 === \"string\"){if(!pattern5.test(key0)){const err9 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key0};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}else {const err10 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key0};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}var valid3 = _errs8 === errors;if(!valid3){const err11 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key0},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}for(const key1 in data1){let data2 = data1[key1];if(typeof data2 === \"string\"){if(func2(data2) > 200){const err12 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}if(func2(data2) < 1){const err13 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}else {const err14 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}}else {const err15 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}if(data.issuingOrganization !== undefined){let data3 = data.issuingOrganization;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if(Object.keys(data3).length < 1){const err16 = {instancePath:instancePath+\"/issuingOrganization\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}for(const key2 in data3){const _errs16 = errors;if(typeof key2 === \"string\"){if(!pattern5.test(key2)){const err17 = {instancePath:instancePath+\"/issuingOrganization\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key2};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}else {const err18 = {instancePath:instancePath+\"/issuingOrganization\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key2};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}var valid6 = _errs16 === errors;if(!valid6){const err19 = {instancePath:instancePath+\"/issuingOrganization\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key2},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}for(const key3 in data3){let data4 = data3[key3];if(typeof data4 === \"string\"){if(func2(data4) > 200){const err20 = {instancePath:instancePath+\"/issuingOrganization/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}if(func2(data4) < 1){const err21 = {instancePath:instancePath+\"/issuingOrganization/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}else {const err22 = {instancePath:instancePath+\"/issuingOrganization/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}}else {const err23 = {instancePath:instancePath+\"/issuingOrganization\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}if(data.issueDate !== undefined){let data5 = data.issueDate;if(typeof data5 === \"string\"){if(!pattern18.test(data5)){const err24 = {instancePath:instancePath+\"/issueDate\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}else {const err25 = {instancePath:instancePath+\"/issueDate\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}}if(data.expirationDate !== undefined){let data6 = data.expirationDate;const _errs25 = errors;let valid9 = false;const _errs26 = errors;if(typeof data6 === \"string\"){if(!pattern18.test(data6)){const err26 = {instancePath:instancePath+\"/expirationDate\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}else {const err27 = {instancePath:instancePath+\"/expirationDate\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}var _valid0 = _errs26 === errors;valid9 = valid9 || _valid0;const _errs29 = errors;if(data6 !== null){const err28 = {instancePath:instancePath+\"/expirationDate\",schemaPath:\"#/properties/expirationDate/anyOf/1/type\",keyword:\"type\",params:{type: \"null\"},message:\"must be null\"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}var _valid0 = _errs29 === errors;valid9 = valid9 || _valid0;if(!valid9){const err29 = {instancePath:instancePath+\"/expirationDate\",schemaPath:\"#/properties/expirationDate/anyOf\",keyword:\"anyOf\",params:{},message:\"must match a schema in anyOf\"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}else {errors = _errs25;if(vErrors !== null){if(_errs25){vErrors.length = _errs25;}else {vErrors = null;}}}}if(data.credentialId !== undefined){let data7 = data.credentialId;if(typeof data7 === \"string\"){if(func2(data7) > 100){const err30 = {instancePath:instancePath+\"/credentialId\",schemaPath:\"#/properties/credentialId/maxLength\",keyword:\"maxLength\",params:{limit: 100},message:\"must NOT have more than 100 characters\"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}if(func2(data7) < 1){const err31 = {instancePath:instancePath+\"/credentialId\",schemaPath:\"#/properties/credentialId/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}}else {const err32 = {instancePath:instancePath+\"/credentialId\",schemaPath:\"#/properties/credentialId/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}if(data.url !== undefined){let data8 = data.url;if(typeof data8 === \"string\"){if(func2(data8) > 2048){const err33 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}if(!(formats2(data8))){const err34 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}}else {const err35 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}}if(data.order !== undefined){let data9 = data.order;if(!(((typeof data9 == \"number\") && (!(data9 % 1) && !isNaN(data9))) && (isFinite(data9)))){const err36 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}if((typeof data9 == \"number\") && (isFinite(data9))){if(data9 < 0 || isNaN(data9)){const err37 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 0},message:\"must be >= 0\"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}}}}else {const err38 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}validate36.errors = vErrors;return errors === 0;}validate36.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema74 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"organization\",\"startDate\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"organization\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"role\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"startDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"endDate\":{\"anyOf\":[{\"$ref\":\"#/$defs/YearMonth\"},{\"type\":\"null\"}],\"description\":\"null = ongoing. Omit if unknown.\"},\"isCurrent\":{\"type\":\"boolean\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}};function validate38(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate38.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.id === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"id\"},message:\"must have required property '\"+\"id\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.organization === undefined){const err1 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"organization\"},message:\"must have required property '\"+\"organization\"+\"'\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.startDate === undefined){const err2 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"startDate\"},message:\"must have required property '\"+\"startDate\"+\"'\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.id !== undefined){let data0 = data.id;if(typeof data0 === \"string\"){if(func2(data0) > 64){const err3 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(func2(data0) < 1){const err4 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(!pattern12.test(data0)){const err5 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}else {const err6 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}if(data.organization !== undefined){let data1 = data.organization;if(data1 && typeof data1 == \"object\" && !Array.isArray(data1)){if(Object.keys(data1).length < 1){const err7 = {instancePath:instancePath+\"/organization\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}for(const key0 in data1){const _errs8 = errors;if(typeof key0 === \"string\"){if(!pattern5.test(key0)){const err8 = {instancePath:instancePath+\"/organization\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key0};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}else {const err9 = {instancePath:instancePath+\"/organization\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key0};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}var valid3 = _errs8 === errors;if(!valid3){const err10 = {instancePath:instancePath+\"/organization\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key0},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}for(const key1 in data1){let data2 = data1[key1];if(typeof data2 === \"string\"){if(func2(data2) > 200){const err11 = {instancePath:instancePath+\"/organization/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}if(func2(data2) < 1){const err12 = {instancePath:instancePath+\"/organization/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}else {const err13 = {instancePath:instancePath+\"/organization/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}}else {const err14 = {instancePath:instancePath+\"/organization\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}if(data.role !== undefined){let data3 = data.role;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if(Object.keys(data3).length < 1){const err15 = {instancePath:instancePath+\"/role\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}for(const key2 in data3){const _errs16 = errors;if(typeof key2 === \"string\"){if(!pattern5.test(key2)){const err16 = {instancePath:instancePath+\"/role\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key2};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}else {const err17 = {instancePath:instancePath+\"/role\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key2};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}var valid6 = _errs16 === errors;if(!valid6){const err18 = {instancePath:instancePath+\"/role\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key2},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}for(const key3 in data3){let data4 = data3[key3];if(typeof data4 === \"string\"){if(func2(data4) > 200){const err19 = {instancePath:instancePath+\"/role/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}if(func2(data4) < 1){const err20 = {instancePath:instancePath+\"/role/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}else {const err21 = {instancePath:instancePath+\"/role/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}}else {const err22 = {instancePath:instancePath+\"/role\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}if(data.description !== undefined){let data5 = data.description;if(data5 && typeof data5 == \"object\" && !Array.isArray(data5)){if(Object.keys(data5).length < 1){const err23 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}for(const key4 in data5){const _errs24 = errors;if(typeof key4 === \"string\"){if(!pattern5.test(key4)){const err24 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key4};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}else {const err25 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key4};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}var valid9 = _errs24 === errors;if(!valid9){const err26 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key4},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}for(const key5 in data5){let data6 = data5[key5];if(typeof data6 === \"string\"){if(func2(data6) > 5000){const err27 = {instancePath:instancePath+\"/description/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 5000},message:\"must NOT have more than 5000 characters\"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}if(func2(data6) < 1){const err28 = {instancePath:instancePath+\"/description/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}}else {const err29 = {instancePath:instancePath+\"/description/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}}}else {const err30 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}}if(data.startDate !== undefined){let data7 = data.startDate;if(typeof data7 === \"string\"){if(!pattern18.test(data7)){const err31 = {instancePath:instancePath+\"/startDate\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}}else {const err32 = {instancePath:instancePath+\"/startDate\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}if(data.endDate !== undefined){let data8 = data.endDate;const _errs33 = errors;let valid12 = false;const _errs34 = errors;if(typeof data8 === \"string\"){if(!pattern18.test(data8)){const err33 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}else {const err34 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}var _valid0 = _errs34 === errors;valid12 = valid12 || _valid0;const _errs37 = errors;if(data8 !== null){const err35 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/properties/endDate/anyOf/1/type\",keyword:\"type\",params:{type: \"null\"},message:\"must be null\"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}var _valid0 = _errs37 === errors;valid12 = valid12 || _valid0;if(!valid12){const err36 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/properties/endDate/anyOf\",keyword:\"anyOf\",params:{},message:\"must match a schema in anyOf\"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}else {errors = _errs33;if(vErrors !== null){if(_errs33){vErrors.length = _errs33;}else {vErrors = null;}}}}if(data.isCurrent !== undefined){if(typeof data.isCurrent !== \"boolean\"){const err37 = {instancePath:instancePath+\"/isCurrent\",schemaPath:\"#/properties/isCurrent/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}}if(data.url !== undefined){let data10 = data.url;if(typeof data10 === \"string\"){if(func2(data10) > 2048){const err38 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}if(!(formats2(data10))){const err39 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}}else {const err40 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}}if(data.order !== undefined){let data11 = data.order;if(!(((typeof data11 == \"number\") && (!(data11 % 1) && !isNaN(data11))) && (isFinite(data11)))){const err41 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;}if((typeof data11 == \"number\") && (isFinite(data11))){if(data11 < 0 || isNaN(data11)){const err42 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 0},message:\"must be >= 0\"};if(vErrors === null){vErrors = [err42];}else {vErrors.push(err42);}errors++;}}}}else {const err43 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err43];}else {vErrors.push(err43);}errors++;}validate38.errors = vErrors;return errors === 0;}validate38.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema82 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"organization\",\"role\",\"startDate\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"organization\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"role\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"cause\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"startDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"endDate\":{\"anyOf\":[{\"$ref\":\"#/$defs/YearMonth\"},{\"type\":\"null\"}]},\"isCurrent\":{\"type\":\"boolean\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}};function validate40(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate40.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.id === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"id\"},message:\"must have required property '\"+\"id\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.organization === undefined){const err1 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"organization\"},message:\"must have required property '\"+\"organization\"+\"'\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.role === undefined){const err2 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"role\"},message:\"must have required property '\"+\"role\"+\"'\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.startDate === undefined){const err3 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"startDate\"},message:\"must have required property '\"+\"startDate\"+\"'\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data.id !== undefined){let data0 = data.id;if(typeof data0 === \"string\"){if(func2(data0) > 64){const err4 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(func2(data0) < 1){const err5 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(!pattern12.test(data0)){const err6 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}else {const err7 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}if(data.organization !== undefined){let data1 = data.organization;if(data1 && typeof data1 == \"object\" && !Array.isArray(data1)){if(Object.keys(data1).length < 1){const err8 = {instancePath:instancePath+\"/organization\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}for(const key0 in data1){const _errs8 = errors;if(typeof key0 === \"string\"){if(!pattern5.test(key0)){const err9 = {instancePath:instancePath+\"/organization\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key0};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}else {const err10 = {instancePath:instancePath+\"/organization\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key0};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}var valid3 = _errs8 === errors;if(!valid3){const err11 = {instancePath:instancePath+\"/organization\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key0},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}for(const key1 in data1){let data2 = data1[key1];if(typeof data2 === \"string\"){if(func2(data2) > 200){const err12 = {instancePath:instancePath+\"/organization/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}if(func2(data2) < 1){const err13 = {instancePath:instancePath+\"/organization/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}else {const err14 = {instancePath:instancePath+\"/organization/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}}else {const err15 = {instancePath:instancePath+\"/organization\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}if(data.role !== undefined){let data3 = data.role;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if(Object.keys(data3).length < 1){const err16 = {instancePath:instancePath+\"/role\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}for(const key2 in data3){const _errs16 = errors;if(typeof key2 === \"string\"){if(!pattern5.test(key2)){const err17 = {instancePath:instancePath+\"/role\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key2};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}else {const err18 = {instancePath:instancePath+\"/role\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key2};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}var valid6 = _errs16 === errors;if(!valid6){const err19 = {instancePath:instancePath+\"/role\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key2},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}for(const key3 in data3){let data4 = data3[key3];if(typeof data4 === \"string\"){if(func2(data4) > 200){const err20 = {instancePath:instancePath+\"/role/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}if(func2(data4) < 1){const err21 = {instancePath:instancePath+\"/role/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}else {const err22 = {instancePath:instancePath+\"/role/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}}else {const err23 = {instancePath:instancePath+\"/role\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}if(data.cause !== undefined){let data5 = data.cause;if(data5 && typeof data5 == \"object\" && !Array.isArray(data5)){if(Object.keys(data5).length < 1){const err24 = {instancePath:instancePath+\"/cause\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}for(const key4 in data5){const _errs24 = errors;if(typeof key4 === \"string\"){if(!pattern5.test(key4)){const err25 = {instancePath:instancePath+\"/cause\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key4};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}}else {const err26 = {instancePath:instancePath+\"/cause\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key4};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}var valid9 = _errs24 === errors;if(!valid9){const err27 = {instancePath:instancePath+\"/cause\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key4},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}}for(const key5 in data5){let data6 = data5[key5];if(typeof data6 === \"string\"){if(func2(data6) > 200){const err28 = {instancePath:instancePath+\"/cause/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}if(func2(data6) < 1){const err29 = {instancePath:instancePath+\"/cause/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}}else {const err30 = {instancePath:instancePath+\"/cause/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}}}else {const err31 = {instancePath:instancePath+\"/cause\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}}if(data.description !== undefined){let data7 = data.description;if(data7 && typeof data7 == \"object\" && !Array.isArray(data7)){if(Object.keys(data7).length < 1){const err32 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}for(const key6 in data7){const _errs32 = errors;if(typeof key6 === \"string\"){if(!pattern5.test(key6)){const err33 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key6};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}else {const err34 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key6};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}var valid12 = _errs32 === errors;if(!valid12){const err35 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key6},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}}for(const key7 in data7){let data8 = data7[key7];if(typeof data8 === \"string\"){if(func2(data8) > 5000){const err36 = {instancePath:instancePath+\"/description/\" + key7.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 5000},message:\"must NOT have more than 5000 characters\"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}if(func2(data8) < 1){const err37 = {instancePath:instancePath+\"/description/\" + key7.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}}else {const err38 = {instancePath:instancePath+\"/description/\" + key7.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}}}else {const err39 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}}if(data.startDate !== undefined){let data9 = data.startDate;if(typeof data9 === \"string\"){if(!pattern18.test(data9)){const err40 = {instancePath:instancePath+\"/startDate\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}}else {const err41 = {instancePath:instancePath+\"/startDate\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;}}if(data.endDate !== undefined){let data10 = data.endDate;const _errs41 = errors;let valid15 = false;const _errs42 = errors;if(typeof data10 === \"string\"){if(!pattern18.test(data10)){const err42 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err42];}else {vErrors.push(err42);}errors++;}}else {const err43 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err43];}else {vErrors.push(err43);}errors++;}var _valid0 = _errs42 === errors;valid15 = valid15 || _valid0;const _errs45 = errors;if(data10 !== null){const err44 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/properties/endDate/anyOf/1/type\",keyword:\"type\",params:{type: \"null\"},message:\"must be null\"};if(vErrors === null){vErrors = [err44];}else {vErrors.push(err44);}errors++;}var _valid0 = _errs45 === errors;valid15 = valid15 || _valid0;if(!valid15){const err45 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/properties/endDate/anyOf\",keyword:\"anyOf\",params:{},message:\"must match a schema in anyOf\"};if(vErrors === null){vErrors = [err45];}else {vErrors.push(err45);}errors++;}else {errors = _errs41;if(vErrors !== null){if(_errs41){vErrors.length = _errs41;}else {vErrors = null;}}}}if(data.isCurrent !== undefined){if(typeof data.isCurrent !== \"boolean\"){const err46 = {instancePath:instancePath+\"/isCurrent\",schemaPath:\"#/properties/isCurrent/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"};if(vErrors === null){vErrors = [err46];}else {vErrors.push(err46);}errors++;}}if(data.url !== undefined){let data12 = data.url;if(typeof data12 === \"string\"){if(func2(data12) > 2048){const err47 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err47];}else {vErrors.push(err47);}errors++;}if(!(formats2(data12))){const err48 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err48];}else {vErrors.push(err48);}errors++;}}else {const err49 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err49];}else {vErrors.push(err49);}errors++;}}if(data.order !== undefined){let data13 = data.order;if(!(((typeof data13 == \"number\") && (!(data13 % 1) && !isNaN(data13))) && (isFinite(data13)))){const err50 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"};if(vErrors === null){vErrors = [err50];}else {vErrors.push(err50);}errors++;}if((typeof data13 == \"number\") && (isFinite(data13))){if(data13 < 0 || isNaN(data13)){const err51 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 0},message:\"must be >= 0\"};if(vErrors === null){vErrors = [err51];}else {vErrors.push(err51);}errors++;}}}}else {const err52 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err52];}else {vErrors.push(err52);}errors++;}validate40.errors = vErrors;return errors === 0;}validate40.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema91 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"title\",\"issuer\",\"date\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"title\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"issuer\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"date\":{\"$ref\":\"#/$defs/YearMonth\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}};function validate42(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate42.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.id === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"id\"},message:\"must have required property '\"+\"id\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.title === undefined){const err1 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"title\"},message:\"must have required property '\"+\"title\"+\"'\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.issuer === undefined){const err2 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"issuer\"},message:\"must have required property '\"+\"issuer\"+\"'\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.date === undefined){const err3 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"date\"},message:\"must have required property '\"+\"date\"+\"'\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data.id !== undefined){let data0 = data.id;if(typeof data0 === \"string\"){if(func2(data0) > 64){const err4 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(func2(data0) < 1){const err5 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(!pattern12.test(data0)){const err6 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}else {const err7 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}if(data.title !== undefined){let data1 = data.title;if(data1 && typeof data1 == \"object\" && !Array.isArray(data1)){if(Object.keys(data1).length < 1){const err8 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}for(const key0 in data1){const _errs8 = errors;if(typeof key0 === \"string\"){if(!pattern5.test(key0)){const err9 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key0};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}else {const err10 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key0};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}var valid3 = _errs8 === errors;if(!valid3){const err11 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key0},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}for(const key1 in data1){let data2 = data1[key1];if(typeof data2 === \"string\"){if(func2(data2) > 200){const err12 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}if(func2(data2) < 1){const err13 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}else {const err14 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}}else {const err15 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}if(data.issuer !== undefined){let data3 = data.issuer;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if(Object.keys(data3).length < 1){const err16 = {instancePath:instancePath+\"/issuer\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}for(const key2 in data3){const _errs16 = errors;if(typeof key2 === \"string\"){if(!pattern5.test(key2)){const err17 = {instancePath:instancePath+\"/issuer\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key2};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}else {const err18 = {instancePath:instancePath+\"/issuer\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key2};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}var valid6 = _errs16 === errors;if(!valid6){const err19 = {instancePath:instancePath+\"/issuer\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key2},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}for(const key3 in data3){let data4 = data3[key3];if(typeof data4 === \"string\"){if(func2(data4) > 200){const err20 = {instancePath:instancePath+\"/issuer/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}if(func2(data4) < 1){const err21 = {instancePath:instancePath+\"/issuer/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}else {const err22 = {instancePath:instancePath+\"/issuer/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}}else {const err23 = {instancePath:instancePath+\"/issuer\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}if(data.description !== undefined){let data5 = data.description;if(data5 && typeof data5 == \"object\" && !Array.isArray(data5)){if(Object.keys(data5).length < 1){const err24 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}for(const key4 in data5){const _errs24 = errors;if(typeof key4 === \"string\"){if(!pattern5.test(key4)){const err25 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key4};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}}else {const err26 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key4};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}var valid9 = _errs24 === errors;if(!valid9){const err27 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key4},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}}for(const key5 in data5){let data6 = data5[key5];if(typeof data6 === \"string\"){if(func2(data6) > 5000){const err28 = {instancePath:instancePath+\"/description/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 5000},message:\"must NOT have more than 5000 characters\"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}if(func2(data6) < 1){const err29 = {instancePath:instancePath+\"/description/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}}else {const err30 = {instancePath:instancePath+\"/description/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}}}else {const err31 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}}if(data.date !== undefined){let data7 = data.date;if(typeof data7 === \"string\"){if(!pattern18.test(data7)){const err32 = {instancePath:instancePath+\"/date\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}else {const err33 = {instancePath:instancePath+\"/date\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}if(data.url !== undefined){let data8 = data.url;if(typeof data8 === \"string\"){if(func2(data8) > 2048){const err34 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}if(!(formats2(data8))){const err35 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}}else {const err36 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}}if(data.order !== undefined){let data9 = data.order;if(!(((typeof data9 == \"number\") && (!(data9 % 1) && !isNaN(data9))) && (isFinite(data9)))){const err37 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}if((typeof data9 == \"number\") && (isFinite(data9))){if(data9 < 0 || isNaN(data9)){const err38 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 0},message:\"must be >= 0\"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}}}}else {const err39 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}validate42.errors = vErrors;return errors === 0;}validate42.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema98 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"institution\",\"startDate\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"institution\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"degree\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"fieldOfStudy\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"grade\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":50,\"description\":\"Free-form grade / class / GPA. Public exposure controlled by meta.privacy.hideEducationGrades.\"},\"startDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"endDate\":{\"anyOf\":[{\"$ref\":\"#/$defs/YearMonth\"},{\"type\":\"null\"}],\"description\":\"null = currently enrolled.\"},\"isCurrent\":{\"type\":\"boolean\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}};function validate44(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate44.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.id === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"id\"},message:\"must have required property '\"+\"id\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.institution === undefined){const err1 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"institution\"},message:\"must have required property '\"+\"institution\"+\"'\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.startDate === undefined){const err2 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"startDate\"},message:\"must have required property '\"+\"startDate\"+\"'\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.id !== undefined){let data0 = data.id;if(typeof data0 === \"string\"){if(func2(data0) > 64){const err3 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(func2(data0) < 1){const err4 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(!pattern12.test(data0)){const err5 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}else {const err6 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}if(data.institution !== undefined){let data1 = data.institution;if(data1 && typeof data1 == \"object\" && !Array.isArray(data1)){if(Object.keys(data1).length < 1){const err7 = {instancePath:instancePath+\"/institution\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}for(const key0 in data1){const _errs8 = errors;if(typeof key0 === \"string\"){if(!pattern5.test(key0)){const err8 = {instancePath:instancePath+\"/institution\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key0};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}else {const err9 = {instancePath:instancePath+\"/institution\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key0};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}var valid3 = _errs8 === errors;if(!valid3){const err10 = {instancePath:instancePath+\"/institution\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key0},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}for(const key1 in data1){let data2 = data1[key1];if(typeof data2 === \"string\"){if(func2(data2) > 200){const err11 = {instancePath:instancePath+\"/institution/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}if(func2(data2) < 1){const err12 = {instancePath:instancePath+\"/institution/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}else {const err13 = {instancePath:instancePath+\"/institution/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}}else {const err14 = {instancePath:instancePath+\"/institution\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}if(data.degree !== undefined){let data3 = data.degree;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if(Object.keys(data3).length < 1){const err15 = {instancePath:instancePath+\"/degree\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}for(const key2 in data3){const _errs16 = errors;if(typeof key2 === \"string\"){if(!pattern5.test(key2)){const err16 = {instancePath:instancePath+\"/degree\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key2};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}else {const err17 = {instancePath:instancePath+\"/degree\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key2};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}var valid6 = _errs16 === errors;if(!valid6){const err18 = {instancePath:instancePath+\"/degree\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key2},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}for(const key3 in data3){let data4 = data3[key3];if(typeof data4 === \"string\"){if(func2(data4) > 200){const err19 = {instancePath:instancePath+\"/degree/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}if(func2(data4) < 1){const err20 = {instancePath:instancePath+\"/degree/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}else {const err21 = {instancePath:instancePath+\"/degree/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}}else {const err22 = {instancePath:instancePath+\"/degree\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}if(data.fieldOfStudy !== undefined){let data5 = data.fieldOfStudy;if(data5 && typeof data5 == \"object\" && !Array.isArray(data5)){if(Object.keys(data5).length < 1){const err23 = {instancePath:instancePath+\"/fieldOfStudy\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}for(const key4 in data5){const _errs24 = errors;if(typeof key4 === \"string\"){if(!pattern5.test(key4)){const err24 = {instancePath:instancePath+\"/fieldOfStudy\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key4};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}else {const err25 = {instancePath:instancePath+\"/fieldOfStudy\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key4};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}var valid9 = _errs24 === errors;if(!valid9){const err26 = {instancePath:instancePath+\"/fieldOfStudy\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key4},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}for(const key5 in data5){let data6 = data5[key5];if(typeof data6 === \"string\"){if(func2(data6) > 200){const err27 = {instancePath:instancePath+\"/fieldOfStudy/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}if(func2(data6) < 1){const err28 = {instancePath:instancePath+\"/fieldOfStudy/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}}else {const err29 = {instancePath:instancePath+\"/fieldOfStudy/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}}}else {const err30 = {instancePath:instancePath+\"/fieldOfStudy\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}}if(data.description !== undefined){let data7 = data.description;if(data7 && typeof data7 == \"object\" && !Array.isArray(data7)){if(Object.keys(data7).length < 1){const err31 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}for(const key6 in data7){const _errs32 = errors;if(typeof key6 === \"string\"){if(!pattern5.test(key6)){const err32 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key6};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}else {const err33 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key6};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}var valid12 = _errs32 === errors;if(!valid12){const err34 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key6},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}}for(const key7 in data7){let data8 = data7[key7];if(typeof data8 === \"string\"){if(func2(data8) > 5000){const err35 = {instancePath:instancePath+\"/description/\" + key7.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 5000},message:\"must NOT have more than 5000 characters\"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}if(func2(data8) < 1){const err36 = {instancePath:instancePath+\"/description/\" + key7.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}}else {const err37 = {instancePath:instancePath+\"/description/\" + key7.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}}}else {const err38 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}}if(data.grade !== undefined){let data9 = data.grade;if(typeof data9 === \"string\"){if(func2(data9) > 50){const err39 = {instancePath:instancePath+\"/grade\",schemaPath:\"#/properties/grade/maxLength\",keyword:\"maxLength\",params:{limit: 50},message:\"must NOT have more than 50 characters\"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}if(func2(data9) < 1){const err40 = {instancePath:instancePath+\"/grade\",schemaPath:\"#/properties/grade/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}}else {const err41 = {instancePath:instancePath+\"/grade\",schemaPath:\"#/properties/grade/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;}}if(data.startDate !== undefined){let data10 = data.startDate;if(typeof data10 === \"string\"){if(!pattern18.test(data10)){const err42 = {instancePath:instancePath+\"/startDate\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err42];}else {vErrors.push(err42);}errors++;}}else {const err43 = {instancePath:instancePath+\"/startDate\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err43];}else {vErrors.push(err43);}errors++;}}if(data.endDate !== undefined){let data11 = data.endDate;const _errs43 = errors;let valid15 = false;const _errs44 = errors;if(typeof data11 === \"string\"){if(!pattern18.test(data11)){const err44 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err44];}else {vErrors.push(err44);}errors++;}}else {const err45 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err45];}else {vErrors.push(err45);}errors++;}var _valid0 = _errs44 === errors;valid15 = valid15 || _valid0;const _errs47 = errors;if(data11 !== null){const err46 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/properties/endDate/anyOf/1/type\",keyword:\"type\",params:{type: \"null\"},message:\"must be null\"};if(vErrors === null){vErrors = [err46];}else {vErrors.push(err46);}errors++;}var _valid0 = _errs47 === errors;valid15 = valid15 || _valid0;if(!valid15){const err47 = {instancePath:instancePath+\"/endDate\",schemaPath:\"#/properties/endDate/anyOf\",keyword:\"anyOf\",params:{},message:\"must match a schema in anyOf\"};if(vErrors === null){vErrors = [err47];}else {vErrors.push(err47);}errors++;}else {errors = _errs43;if(vErrors !== null){if(_errs43){vErrors.length = _errs43;}else {vErrors = null;}}}}if(data.isCurrent !== undefined){if(typeof data.isCurrent !== \"boolean\"){const err48 = {instancePath:instancePath+\"/isCurrent\",schemaPath:\"#/properties/isCurrent/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"};if(vErrors === null){vErrors = [err48];}else {vErrors.push(err48);}errors++;}}if(data.url !== undefined){let data13 = data.url;if(typeof data13 === \"string\"){if(func2(data13) > 2048){const err49 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err49];}else {vErrors.push(err49);}errors++;}if(!(formats2(data13))){const err50 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err50];}else {vErrors.push(err50);}errors++;}}else {const err51 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err51];}else {vErrors.push(err51);}errors++;}}if(data.order !== undefined){let data14 = data.order;if(!(((typeof data14 == \"number\") && (!(data14 % 1) && !isNaN(data14))) && (isFinite(data14)))){const err52 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"};if(vErrors === null){vErrors = [err52];}else {vErrors.push(err52);}errors++;}if((typeof data14 == \"number\") && (isFinite(data14))){if(data14 < 0 || isNaN(data14)){const err53 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 0},message:\"must be >= 0\"};if(vErrors === null){vErrors = [err53];}else {vErrors.push(err53);}errors++;}}}}else {const err54 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err54];}else {vErrors.push(err54);}errors++;}validate44.errors = vErrors;return errors === 0;}validate44.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema107 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"title\",\"date\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"title\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"publisher\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"date\":{\"$ref\":\"#/$defs/YearMonth\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"doi\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":200,\"description\":\"DOI identifier (e.g. '10.1145/3548643.3548644'). The full URL goes in 'url'.\"},\"coAuthors\":{\"type\":\"array\",\"maxItems\":50,\"items\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100},\"description\":\"Co-author names in original script. Excludes the profile owner.\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}};function validate46(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate46.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.id === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"id\"},message:\"must have required property '\"+\"id\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.title === undefined){const err1 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"title\"},message:\"must have required property '\"+\"title\"+\"'\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.date === undefined){const err2 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"date\"},message:\"must have required property '\"+\"date\"+\"'\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.id !== undefined){let data0 = data.id;if(typeof data0 === \"string\"){if(func2(data0) > 64){const err3 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(func2(data0) < 1){const err4 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(!pattern12.test(data0)){const err5 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}else {const err6 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}if(data.title !== undefined){let data1 = data.title;if(data1 && typeof data1 == \"object\" && !Array.isArray(data1)){if(Object.keys(data1).length < 1){const err7 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}for(const key0 in data1){const _errs8 = errors;if(typeof key0 === \"string\"){if(!pattern5.test(key0)){const err8 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key0};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}else {const err9 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key0};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}var valid3 = _errs8 === errors;if(!valid3){const err10 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key0},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}for(const key1 in data1){let data2 = data1[key1];if(typeof data2 === \"string\"){if(func2(data2) > 200){const err11 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}if(func2(data2) < 1){const err12 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}else {const err13 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}}else {const err14 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}if(data.publisher !== undefined){let data3 = data.publisher;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if(Object.keys(data3).length < 1){const err15 = {instancePath:instancePath+\"/publisher\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}for(const key2 in data3){const _errs16 = errors;if(typeof key2 === \"string\"){if(!pattern5.test(key2)){const err16 = {instancePath:instancePath+\"/publisher\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key2};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}else {const err17 = {instancePath:instancePath+\"/publisher\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key2};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}var valid6 = _errs16 === errors;if(!valid6){const err18 = {instancePath:instancePath+\"/publisher\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key2},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}for(const key3 in data3){let data4 = data3[key3];if(typeof data4 === \"string\"){if(func2(data4) > 200){const err19 = {instancePath:instancePath+\"/publisher/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}if(func2(data4) < 1){const err20 = {instancePath:instancePath+\"/publisher/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}else {const err21 = {instancePath:instancePath+\"/publisher/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}}else {const err22 = {instancePath:instancePath+\"/publisher\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}if(data.description !== undefined){let data5 = data.description;if(data5 && typeof data5 == \"object\" && !Array.isArray(data5)){if(Object.keys(data5).length < 1){const err23 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}for(const key4 in data5){const _errs24 = errors;if(typeof key4 === \"string\"){if(!pattern5.test(key4)){const err24 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key4};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}else {const err25 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key4};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}var valid9 = _errs24 === errors;if(!valid9){const err26 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key4},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}for(const key5 in data5){let data6 = data5[key5];if(typeof data6 === \"string\"){if(func2(data6) > 5000){const err27 = {instancePath:instancePath+\"/description/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 5000},message:\"must NOT have more than 5000 characters\"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}if(func2(data6) < 1){const err28 = {instancePath:instancePath+\"/description/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}}else {const err29 = {instancePath:instancePath+\"/description/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}}}else {const err30 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}}if(data.date !== undefined){let data7 = data.date;if(typeof data7 === \"string\"){if(!pattern18.test(data7)){const err31 = {instancePath:instancePath+\"/date\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}}else {const err32 = {instancePath:instancePath+\"/date\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}if(data.url !== undefined){let data8 = data.url;if(typeof data8 === \"string\"){if(func2(data8) > 2048){const err33 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}if(!(formats2(data8))){const err34 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}}else {const err35 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}}if(data.doi !== undefined){let data9 = data.doi;if(typeof data9 === \"string\"){if(func2(data9) > 200){const err36 = {instancePath:instancePath+\"/doi\",schemaPath:\"#/properties/doi/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}if(func2(data9) < 1){const err37 = {instancePath:instancePath+\"/doi\",schemaPath:\"#/properties/doi/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}}else {const err38 = {instancePath:instancePath+\"/doi\",schemaPath:\"#/properties/doi/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}}if(data.coAuthors !== undefined){let data10 = data.coAuthors;if(Array.isArray(data10)){if(data10.length > 50){const err39 = {instancePath:instancePath+\"/coAuthors\",schemaPath:\"#/properties/coAuthors/maxItems\",keyword:\"maxItems\",params:{limit: 50},message:\"must NOT have more than 50 items\"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}const len0 = data10.length;for(let i0=0; i0<len0; i0++){let data11 = data10[i0];if(typeof data11 === \"string\"){if(func2(data11) > 100){const err40 = {instancePath:instancePath+\"/coAuthors/\" + i0,schemaPath:\"#/properties/coAuthors/items/maxLength\",keyword:\"maxLength\",params:{limit: 100},message:\"must NOT have more than 100 characters\"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}if(func2(data11) < 1){const err41 = {instancePath:instancePath+\"/coAuthors/\" + i0,schemaPath:\"#/properties/coAuthors/items/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;}}else {const err42 = {instancePath:instancePath+\"/coAuthors/\" + i0,schemaPath:\"#/properties/coAuthors/items/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err42];}else {vErrors.push(err42);}errors++;}}}else {const err43 = {instancePath:instancePath+\"/coAuthors\",schemaPath:\"#/properties/coAuthors/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err43];}else {vErrors.push(err43);}errors++;}}if(data.order !== undefined){let data12 = data.order;if(!(((typeof data12 == \"number\") && (!(data12 % 1) && !isNaN(data12))) && (isFinite(data12)))){const err44 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"};if(vErrors === null){vErrors = [err44];}else {vErrors.push(err44);}errors++;}if((typeof data12 == \"number\") && (isFinite(data12))){if(data12 < 0 || isNaN(data12)){const err45 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 0},message:\"must be >= 0\"};if(vErrors === null){vErrors = [err45];}else {vErrors.push(err45);}errors++;}}}}else {const err46 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err46];}else {vErrors.push(err46);}errors++;}validate46.errors = vErrors;return errors === 0;}validate46.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema114 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"language\",\"proficiency\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"language\":{\"$ref\":\"#/$defs/LocaleTag\"},\"displayName\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"proficiency\":{\"type\":\"string\",\"enum\":[\"native\",\"fluent\",\"professional\",\"intermediate\",\"basic\"],\"description\":\"LinkedIn-compatible 5-level proficiency.\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}};const schema116 = {\"type\":\"string\",\"minLength\":2,\"maxLength\":35,\"pattern\":\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\",\"description\":\"BCP-47 language tag (e.g., 'en', 'ja', 'zh-Hant', 'pt-BR').\"};function validate48(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate48.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.id === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"id\"},message:\"must have required property '\"+\"id\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.language === undefined){const err1 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"language\"},message:\"must have required property '\"+\"language\"+\"'\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.proficiency === undefined){const err2 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"proficiency\"},message:\"must have required property '\"+\"proficiency\"+\"'\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.id !== undefined){let data0 = data.id;if(typeof data0 === \"string\"){if(func2(data0) > 64){const err3 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(func2(data0) < 1){const err4 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(!pattern12.test(data0)){const err5 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}else {const err6 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}if(data.language !== undefined){let data1 = data.language;if(typeof data1 === \"string\"){if(func2(data1) > 35){const err7 = {instancePath:instancePath+\"/language\",schemaPath:\"#/$defs/LocaleTag/maxLength\",keyword:\"maxLength\",params:{limit: 35},message:\"must NOT have more than 35 characters\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}if(func2(data1) < 2){const err8 = {instancePath:instancePath+\"/language\",schemaPath:\"#/$defs/LocaleTag/minLength\",keyword:\"minLength\",params:{limit: 2},message:\"must NOT have fewer than 2 characters\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}if(!pattern5.test(data1)){const err9 = {instancePath:instancePath+\"/language\",schemaPath:\"#/$defs/LocaleTag/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}else {const err10 = {instancePath:instancePath+\"/language\",schemaPath:\"#/$defs/LocaleTag/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}if(data.displayName !== undefined){let data2 = data.displayName;if(data2 && typeof data2 == \"object\" && !Array.isArray(data2)){if(Object.keys(data2).length < 1){const err11 = {instancePath:instancePath+\"/displayName\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}for(const key0 in data2){const _errs11 = errors;if(typeof key0 === \"string\"){if(!pattern5.test(key0)){const err12 = {instancePath:instancePath+\"/displayName\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key0};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}else {const err13 = {instancePath:instancePath+\"/displayName\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key0};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}var valid4 = _errs11 === errors;if(!valid4){const err14 = {instancePath:instancePath+\"/displayName\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key0},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}for(const key1 in data2){let data3 = data2[key1];if(typeof data3 === \"string\"){if(func2(data3) > 200){const err15 = {instancePath:instancePath+\"/displayName/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}if(func2(data3) < 1){const err16 = {instancePath:instancePath+\"/displayName/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}else {const err17 = {instancePath:instancePath+\"/displayName/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}}else {const err18 = {instancePath:instancePath+\"/displayName\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}if(data.proficiency !== undefined){let data4 = data.proficiency;if(typeof data4 !== \"string\"){const err19 = {instancePath:instancePath+\"/proficiency\",schemaPath:\"#/properties/proficiency/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}if(!(((((data4 === \"native\") || (data4 === \"fluent\")) || (data4 === \"professional\")) || (data4 === \"intermediate\")) || (data4 === \"basic\"))){const err20 = {instancePath:instancePath+\"/proficiency\",schemaPath:\"#/properties/proficiency/enum\",keyword:\"enum\",params:{allowedValues: schema114.properties.proficiency.enum},message:\"must be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}if(data.order !== undefined){let data5 = data.order;if(!(((typeof data5 == \"number\") && (!(data5 % 1) && !isNaN(data5))) && (isFinite(data5)))){const err21 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}if((typeof data5 == \"number\") && (isFinite(data5))){if(data5 < 0 || isNaN(data5)){const err22 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 0},message:\"must be >= 0\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}}}else {const err23 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}validate48.errors = vErrors;return errors === 0;}validate48.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema118 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"title\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"title\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"provider\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"courseNumber\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":50},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"completionDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"certificateUrl\":{\"$ref\":\"#/$defs/Url\"},\"relatedEducationId\":{\"$ref\":\"#/$defs/Slug\",\"description\":\"Optional reference to an education[].id (e.g. for university coursework).\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}};function validate50(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate50.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.id === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"id\"},message:\"must have required property '\"+\"id\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.title === undefined){const err1 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"title\"},message:\"must have required property '\"+\"title\"+\"'\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.id !== undefined){let data0 = data.id;if(typeof data0 === \"string\"){if(func2(data0) > 64){const err2 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(func2(data0) < 1){const err3 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(!pattern12.test(data0)){const err4 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}else {const err5 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}if(data.title !== undefined){let data1 = data.title;if(data1 && typeof data1 == \"object\" && !Array.isArray(data1)){if(Object.keys(data1).length < 1){const err6 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}for(const key0 in data1){const _errs8 = errors;if(typeof key0 === \"string\"){if(!pattern5.test(key0)){const err7 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key0};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}else {const err8 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key0};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}var valid3 = _errs8 === errors;if(!valid3){const err9 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key0},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}for(const key1 in data1){let data2 = data1[key1];if(typeof data2 === \"string\"){if(func2(data2) > 200){const err10 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}if(func2(data2) < 1){const err11 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}else {const err12 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}}else {const err13 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}if(data.provider !== undefined){let data3 = data.provider;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if(Object.keys(data3).length < 1){const err14 = {instancePath:instancePath+\"/provider\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}for(const key2 in data3){const _errs16 = errors;if(typeof key2 === \"string\"){if(!pattern5.test(key2)){const err15 = {instancePath:instancePath+\"/provider\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key2};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}else {const err16 = {instancePath:instancePath+\"/provider\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key2};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}var valid6 = _errs16 === errors;if(!valid6){const err17 = {instancePath:instancePath+\"/provider\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key2},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}for(const key3 in data3){let data4 = data3[key3];if(typeof data4 === \"string\"){if(func2(data4) > 200){const err18 = {instancePath:instancePath+\"/provider/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}if(func2(data4) < 1){const err19 = {instancePath:instancePath+\"/provider/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}else {const err20 = {instancePath:instancePath+\"/provider/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}}else {const err21 = {instancePath:instancePath+\"/provider\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}if(data.courseNumber !== undefined){let data5 = data.courseNumber;if(typeof data5 === \"string\"){if(func2(data5) > 50){const err22 = {instancePath:instancePath+\"/courseNumber\",schemaPath:\"#/properties/courseNumber/maxLength\",keyword:\"maxLength\",params:{limit: 50},message:\"must NOT have more than 50 characters\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}if(func2(data5) < 1){const err23 = {instancePath:instancePath+\"/courseNumber\",schemaPath:\"#/properties/courseNumber/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}else {const err24 = {instancePath:instancePath+\"/courseNumber\",schemaPath:\"#/properties/courseNumber/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}if(data.description !== undefined){let data6 = data.description;if(data6 && typeof data6 == \"object\" && !Array.isArray(data6)){if(Object.keys(data6).length < 1){const err25 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}for(const key4 in data6){const _errs26 = errors;if(typeof key4 === \"string\"){if(!pattern5.test(key4)){const err26 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key4};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}else {const err27 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key4};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}var valid9 = _errs26 === errors;if(!valid9){const err28 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key4},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}}for(const key5 in data6){let data7 = data6[key5];if(typeof data7 === \"string\"){if(func2(data7) > 5000){const err29 = {instancePath:instancePath+\"/description/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 5000},message:\"must NOT have more than 5000 characters\"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}if(func2(data7) < 1){const err30 = {instancePath:instancePath+\"/description/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}}else {const err31 = {instancePath:instancePath+\"/description/\" + key5.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}}}else {const err32 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}if(data.completionDate !== undefined){let data8 = data.completionDate;if(typeof data8 === \"string\"){if(!pattern18.test(data8)){const err33 = {instancePath:instancePath+\"/completionDate\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}else {const err34 = {instancePath:instancePath+\"/completionDate\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}}if(data.certificateUrl !== undefined){let data9 = data.certificateUrl;if(typeof data9 === \"string\"){if(func2(data9) > 2048){const err35 = {instancePath:instancePath+\"/certificateUrl\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}if(!(formats2(data9))){const err36 = {instancePath:instancePath+\"/certificateUrl\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}}else {const err37 = {instancePath:instancePath+\"/certificateUrl\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}}if(data.relatedEducationId !== undefined){let data10 = data.relatedEducationId;if(typeof data10 === \"string\"){if(func2(data10) > 64){const err38 = {instancePath:instancePath+\"/relatedEducationId\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}if(func2(data10) < 1){const err39 = {instancePath:instancePath+\"/relatedEducationId\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}if(!pattern12.test(data10)){const err40 = {instancePath:instancePath+\"/relatedEducationId\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}}else {const err41 = {instancePath:instancePath+\"/relatedEducationId\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;}}if(data.order !== undefined){let data11 = data.order;if(!(((typeof data11 == \"number\") && (!(data11 % 1) && !isNaN(data11))) && (isFinite(data11)))){const err42 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"};if(vErrors === null){vErrors = [err42];}else {vErrors.push(err42);}errors++;}if((typeof data11 == \"number\") && (isFinite(data11))){if(data11 < 0 || isNaN(data11)){const err43 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 0},message:\"must be >= 0\"};if(vErrors === null){vErrors = [err43];}else {vErrors.push(err43);}errors++;}}}}else {const err44 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err44];}else {vErrors.push(err44);}errors++;}validate50.errors = vErrors;return errors === 0;}validate50.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema126 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"title\",\"patentNumber\",\"status\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"title\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"patentNumber\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100},\"office\":{\"type\":\"string\",\"maxLength\":100,\"description\":\"Patent office name (e.g. 'USPTO', 'JPO', 'EPO').\"},\"status\":{\"type\":\"string\",\"enum\":[\"pending\",\"issued\",\"expired\",\"abandoned\"]},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"filingDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"grantDate\":{\"$ref\":\"#/$defs/YearMonth\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"coInventors\":{\"type\":\"array\",\"maxItems\":20,\"items\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100}},\"order\":{\"type\":\"integer\",\"minimum\":0}}};function validate52(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate52.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.id === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"id\"},message:\"must have required property '\"+\"id\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.title === undefined){const err1 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"title\"},message:\"must have required property '\"+\"title\"+\"'\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.patentNumber === undefined){const err2 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"patentNumber\"},message:\"must have required property '\"+\"patentNumber\"+\"'\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.status === undefined){const err3 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"status\"},message:\"must have required property '\"+\"status\"+\"'\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data.id !== undefined){let data0 = data.id;if(typeof data0 === \"string\"){if(func2(data0) > 64){const err4 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(func2(data0) < 1){const err5 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(!pattern12.test(data0)){const err6 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}else {const err7 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}if(data.title !== undefined){let data1 = data.title;if(data1 && typeof data1 == \"object\" && !Array.isArray(data1)){if(Object.keys(data1).length < 1){const err8 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}for(const key0 in data1){const _errs8 = errors;if(typeof key0 === \"string\"){if(!pattern5.test(key0)){const err9 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key0};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}else {const err10 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key0};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}var valid3 = _errs8 === errors;if(!valid3){const err11 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key0},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}for(const key1 in data1){let data2 = data1[key1];if(typeof data2 === \"string\"){if(func2(data2) > 200){const err12 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}if(func2(data2) < 1){const err13 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}else {const err14 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}}else {const err15 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}if(data.patentNumber !== undefined){let data3 = data.patentNumber;if(typeof data3 === \"string\"){if(func2(data3) > 100){const err16 = {instancePath:instancePath+\"/patentNumber\",schemaPath:\"#/properties/patentNumber/maxLength\",keyword:\"maxLength\",params:{limit: 100},message:\"must NOT have more than 100 characters\"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}if(func2(data3) < 1){const err17 = {instancePath:instancePath+\"/patentNumber\",schemaPath:\"#/properties/patentNumber/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}else {const err18 = {instancePath:instancePath+\"/patentNumber\",schemaPath:\"#/properties/patentNumber/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}if(data.office !== undefined){let data4 = data.office;if(typeof data4 === \"string\"){if(func2(data4) > 100){const err19 = {instancePath:instancePath+\"/office\",schemaPath:\"#/properties/office/maxLength\",keyword:\"maxLength\",params:{limit: 100},message:\"must NOT have more than 100 characters\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}else {const err20 = {instancePath:instancePath+\"/office\",schemaPath:\"#/properties/office/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}if(data.status !== undefined){let data5 = data.status;if(typeof data5 !== \"string\"){const err21 = {instancePath:instancePath+\"/status\",schemaPath:\"#/properties/status/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}if(!((((data5 === \"pending\") || (data5 === \"issued\")) || (data5 === \"expired\")) || (data5 === \"abandoned\"))){const err22 = {instancePath:instancePath+\"/status\",schemaPath:\"#/properties/status/enum\",keyword:\"enum\",params:{allowedValues: schema126.properties.status.enum},message:\"must be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}if(data.description !== undefined){let data6 = data.description;if(data6 && typeof data6 == \"object\" && !Array.isArray(data6)){if(Object.keys(data6).length < 1){const err23 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}for(const key2 in data6){const _errs22 = errors;if(typeof key2 === \"string\"){if(!pattern5.test(key2)){const err24 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key2};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}else {const err25 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key2};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}var valid6 = _errs22 === errors;if(!valid6){const err26 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key2},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}for(const key3 in data6){let data7 = data6[key3];if(typeof data7 === \"string\"){if(func2(data7) > 5000){const err27 = {instancePath:instancePath+\"/description/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 5000},message:\"must NOT have more than 5000 characters\"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}if(func2(data7) < 1){const err28 = {instancePath:instancePath+\"/description/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}}else {const err29 = {instancePath:instancePath+\"/description/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}}}else {const err30 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}}if(data.filingDate !== undefined){let data8 = data.filingDate;if(typeof data8 === \"string\"){if(!pattern18.test(data8)){const err31 = {instancePath:instancePath+\"/filingDate\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}}else {const err32 = {instancePath:instancePath+\"/filingDate\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}if(data.grantDate !== undefined){let data9 = data.grantDate;if(typeof data9 === \"string\"){if(!pattern18.test(data9)){const err33 = {instancePath:instancePath+\"/grantDate\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}else {const err34 = {instancePath:instancePath+\"/grantDate\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}}if(data.url !== undefined){let data10 = data.url;if(typeof data10 === \"string\"){if(func2(data10) > 2048){const err35 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}if(!(formats2(data10))){const err36 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}}else {const err37 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}}if(data.coInventors !== undefined){let data11 = data.coInventors;if(Array.isArray(data11)){if(data11.length > 20){const err38 = {instancePath:instancePath+\"/coInventors\",schemaPath:\"#/properties/coInventors/maxItems\",keyword:\"maxItems\",params:{limit: 20},message:\"must NOT have more than 20 items\"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}const len0 = data11.length;for(let i0=0; i0<len0; i0++){let data12 = data11[i0];if(typeof data12 === \"string\"){if(func2(data12) > 100){const err39 = {instancePath:instancePath+\"/coInventors/\" + i0,schemaPath:\"#/properties/coInventors/items/maxLength\",keyword:\"maxLength\",params:{limit: 100},message:\"must NOT have more than 100 characters\"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}if(func2(data12) < 1){const err40 = {instancePath:instancePath+\"/coInventors/\" + i0,schemaPath:\"#/properties/coInventors/items/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}}else {const err41 = {instancePath:instancePath+\"/coInventors/\" + i0,schemaPath:\"#/properties/coInventors/items/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;}}}else {const err42 = {instancePath:instancePath+\"/coInventors\",schemaPath:\"#/properties/coInventors/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err42];}else {vErrors.push(err42);}errors++;}}if(data.order !== undefined){let data13 = data.order;if(!(((typeof data13 == \"number\") && (!(data13 % 1) && !isNaN(data13))) && (isFinite(data13)))){const err43 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"};if(vErrors === null){vErrors = [err43];}else {vErrors.push(err43);}errors++;}if((typeof data13 == \"number\") && (isFinite(data13))){if(data13 < 0 || isNaN(data13)){const err44 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 0},message:\"must be >= 0\"};if(vErrors === null){vErrors = [err44];}else {vErrors.push(err44);}errors++;}}}}else {const err45 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err45];}else {vErrors.push(err45);}errors++;}validate52.errors = vErrors;return errors === 0;}validate52.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema133 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"title\",\"score\",\"date\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"title\":{\"$ref\":\"#/$defs/LocalizedTitle\"},\"score\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":50,\"description\":\"Free-form score string (e.g. '112 / 120', '330', 'N1 Pass', or a percentile). The validator does not interpret its contents.\"},\"date\":{\"$ref\":\"#/$defs/YearMonth\"},\"relatedEducationId\":{\"$ref\":\"#/$defs/Slug\",\"description\":\"Optional reference to an education[].id (e.g. for a university course exam).\"},\"description\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}};function validate54(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate54.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.id === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"id\"},message:\"must have required property '\"+\"id\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.title === undefined){const err1 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"title\"},message:\"must have required property '\"+\"title\"+\"'\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.score === undefined){const err2 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"score\"},message:\"must have required property '\"+\"score\"+\"'\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.date === undefined){const err3 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"date\"},message:\"must have required property '\"+\"date\"+\"'\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data.id !== undefined){let data0 = data.id;if(typeof data0 === \"string\"){if(func2(data0) > 64){const err4 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(func2(data0) < 1){const err5 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(!pattern12.test(data0)){const err6 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}else {const err7 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}if(data.title !== undefined){let data1 = data.title;if(data1 && typeof data1 == \"object\" && !Array.isArray(data1)){if(Object.keys(data1).length < 1){const err8 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}for(const key0 in data1){const _errs8 = errors;if(typeof key0 === \"string\"){if(!pattern5.test(key0)){const err9 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key0};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}else {const err10 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key0};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}var valid3 = _errs8 === errors;if(!valid3){const err11 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key0},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}for(const key1 in data1){let data2 = data1[key1];if(typeof data2 === \"string\"){if(func2(data2) > 200){const err12 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}if(func2(data2) < 1){const err13 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}else {const err14 = {instancePath:instancePath+\"/title/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}}else {const err15 = {instancePath:instancePath+\"/title\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}if(data.score !== undefined){let data3 = data.score;if(typeof data3 === \"string\"){if(func2(data3) > 50){const err16 = {instancePath:instancePath+\"/score\",schemaPath:\"#/properties/score/maxLength\",keyword:\"maxLength\",params:{limit: 50},message:\"must NOT have more than 50 characters\"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}if(func2(data3) < 1){const err17 = {instancePath:instancePath+\"/score\",schemaPath:\"#/properties/score/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}else {const err18 = {instancePath:instancePath+\"/score\",schemaPath:\"#/properties/score/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}if(data.date !== undefined){let data4 = data.date;if(typeof data4 === \"string\"){if(!pattern18.test(data4)){const err19 = {instancePath:instancePath+\"/date\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}else {const err20 = {instancePath:instancePath+\"/date\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}if(data.relatedEducationId !== undefined){let data5 = data.relatedEducationId;if(typeof data5 === \"string\"){if(func2(data5) > 64){const err21 = {instancePath:instancePath+\"/relatedEducationId\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}if(func2(data5) < 1){const err22 = {instancePath:instancePath+\"/relatedEducationId\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}if(!pattern12.test(data5)){const err23 = {instancePath:instancePath+\"/relatedEducationId\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}else {const err24 = {instancePath:instancePath+\"/relatedEducationId\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}if(data.description !== undefined){let data6 = data.description;if(data6 && typeof data6 == \"object\" && !Array.isArray(data6)){if(Object.keys(data6).length < 1){const err25 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}for(const key2 in data6){const _errs24 = errors;if(typeof key2 === \"string\"){if(!pattern5.test(key2)){const err26 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key2};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}else {const err27 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key2};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}var valid8 = _errs24 === errors;if(!valid8){const err28 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key2},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}}for(const key3 in data6){let data7 = data6[key3];if(typeof data7 === \"string\"){if(func2(data7) > 5000){const err29 = {instancePath:instancePath+\"/description/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 5000},message:\"must NOT have more than 5000 characters\"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}if(func2(data7) < 1){const err30 = {instancePath:instancePath+\"/description/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}}else {const err31 = {instancePath:instancePath+\"/description/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}}}else {const err32 = {instancePath:instancePath+\"/description\",schemaPath:\"#/$defs/LocalizedBody/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}if(data.url !== undefined){let data8 = data.url;if(typeof data8 === \"string\"){if(func2(data8) > 2048){const err33 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}if(!(formats2(data8))){const err34 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}}else {const err35 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}}if(data.order !== undefined){let data9 = data.order;if(!(((typeof data9 == \"number\") && (!(data9 % 1) && !isNaN(data9))) && (isFinite(data9)))){const err36 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}if((typeof data9 == \"number\") && (isFinite(data9))){if(data9 < 0 || isNaN(data9)){const err37 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 0},message:\"must be >= 0\"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}}}}else {const err38 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}validate54.errors = vErrors;return errors === 0;}validate54.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema140 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"id\",\"body\",\"author\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/Slug\"},\"body\":{\"$ref\":\"#/$defs/LocalizedBody\"},\"author\":{\"$ref\":\"#/$defs/RecommendationAuthor\"},\"relationship\":{\"$ref\":\"#/$defs/LocalizedTitle\",\"description\":\"How the recommender relates to the profile owner (e.g. 'managed directly', 'worked together').\"},\"date\":{\"$ref\":\"#/$defs/YearMonth\"},\"relatedCareerId\":{\"$ref\":\"#/$defs/Slug\",\"description\":\"Optional reference to a careers[].id (the position the recommendation pertains to).\"},\"relatedEducationId\":{\"$ref\":\"#/$defs/Slug\",\"description\":\"Optional reference to an education[].id (e.g. a recommendation from a professor).\"},\"order\":{\"type\":\"integer\",\"minimum\":0}}};const schema143 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"name\"],\"properties\":{\"name\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100,\"description\":\"Recommender's name, in its original script. Owner-curated; takuhon does not verify it.\"},\"headline\":{\"$ref\":\"#/$defs/LocalizedTitle\",\"description\":\"Recommender's title / role / organization at the time of the recommendation.\"},\"url\":{\"$ref\":\"#/$defs/Url\",\"description\":\"Link to the recommender's profile, for external verification by the reader.\"}}};function validate57(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate57.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.name === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"name\"},message:\"must have required property '\"+\"name\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.name !== undefined){let data0 = data.name;if(typeof data0 === \"string\"){if(func2(data0) > 100){const err1 = {instancePath:instancePath+\"/name\",schemaPath:\"#/properties/name/maxLength\",keyword:\"maxLength\",params:{limit: 100},message:\"must NOT have more than 100 characters\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(func2(data0) < 1){const err2 = {instancePath:instancePath+\"/name\",schemaPath:\"#/properties/name/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}else {const err3 = {instancePath:instancePath+\"/name\",schemaPath:\"#/properties/name/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}if(data.headline !== undefined){let data1 = data.headline;if(data1 && typeof data1 == \"object\" && !Array.isArray(data1)){if(Object.keys(data1).length < 1){const err4 = {instancePath:instancePath+\"/headline\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}for(const key0 in data1){const _errs7 = errors;if(typeof key0 === \"string\"){if(!pattern5.test(key0)){const err5 = {instancePath:instancePath+\"/headline\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key0};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}else {const err6 = {instancePath:instancePath+\"/headline\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key0};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}var valid2 = _errs7 === errors;if(!valid2){const err7 = {instancePath:instancePath+\"/headline\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key0},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}for(const key1 in data1){let data2 = data1[key1];if(typeof data2 === \"string\"){if(func2(data2) > 200){const err8 = {instancePath:instancePath+\"/headline/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}if(func2(data2) < 1){const err9 = {instancePath:instancePath+\"/headline/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}else {const err10 = {instancePath:instancePath+\"/headline/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}}else {const err11 = {instancePath:instancePath+\"/headline\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}if(data.url !== undefined){let data3 = data.url;if(typeof data3 === \"string\"){if(func2(data3) > 2048){const err12 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}if(!(formats2(data3))){const err13 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}else {const err14 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}}else {const err15 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}validate57.errors = vErrors;return errors === 0;}validate57.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};function validate56(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate56.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.id === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"id\"},message:\"must have required property '\"+\"id\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.body === undefined){const err1 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"body\"},message:\"must have required property '\"+\"body\"+\"'\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.author === undefined){const err2 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"author\"},message:\"must have required property '\"+\"author\"+\"'\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.id !== undefined){let data0 = data.id;if(typeof data0 === \"string\"){if(func2(data0) > 64){const err3 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(func2(data0) < 1){const err4 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(!pattern12.test(data0)){const err5 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}else {const err6 = {instancePath:instancePath+\"/id\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}if(data.body !== undefined){let data1 = data.body;if(data1 && typeof data1 == \"object\" && !Array.isArray(data1)){if(Object.keys(data1).length < 1){const err7 = {instancePath:instancePath+\"/body\",schemaPath:\"#/$defs/LocalizedBody/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}for(const key0 in data1){const _errs8 = errors;if(typeof key0 === \"string\"){if(!pattern5.test(key0)){const err8 = {instancePath:instancePath+\"/body\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key0};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}else {const err9 = {instancePath:instancePath+\"/body\",schemaPath:\"#/$defs/LocalizedBody/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key0};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}var valid3 = _errs8 === errors;if(!valid3){const err10 = {instancePath:instancePath+\"/body\",schemaPath:\"#/$defs/LocalizedBody/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key0},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}for(const key1 in data1){let data2 = data1[key1];if(typeof data2 === \"string\"){if(func2(data2) > 5000){const err11 = {instancePath:instancePath+\"/body/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 5000},message:\"must NOT have more than 5000 characters\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}if(func2(data2) < 1){const err12 = {instancePath:instancePath+\"/body/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}else {const err13 = {instancePath:instancePath+\"/body/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedBody/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}}else {const err14 = {instancePath:instancePath+\"/body\",schemaPath:\"#/$defs/LocalizedBody/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}if(data.author !== undefined){if(!(validate57(data.author, {instancePath:instancePath+\"/author\",parentData:data,parentDataProperty:\"author\",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate57.errors : vErrors.concat(validate57.errors);errors = vErrors.length;}}if(data.relationship !== undefined){let data4 = data.relationship;if(data4 && typeof data4 == \"object\" && !Array.isArray(data4)){if(Object.keys(data4).length < 1){const err15 = {instancePath:instancePath+\"/relationship\",schemaPath:\"#/$defs/LocalizedTitle/minProperties\",keyword:\"minProperties\",params:{limit: 1},message:\"must NOT have fewer than 1 properties\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}for(const key2 in data4){const _errs17 = errors;if(typeof key2 === \"string\"){if(!pattern5.test(key2)){const err16 = {instancePath:instancePath+\"/relationship\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\",propertyName:key2};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}else {const err17 = {instancePath:instancePath+\"/relationship\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\",propertyName:key2};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}var valid6 = _errs17 === errors;if(!valid6){const err18 = {instancePath:instancePath+\"/relationship\",schemaPath:\"#/$defs/LocalizedTitle/propertyNames\",keyword:\"propertyNames\",params:{propertyName: key2},message:\"property name must be valid\"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}for(const key3 in data4){let data5 = data4[key3];if(typeof data5 === \"string\"){if(func2(data5) > 200){const err19 = {instancePath:instancePath+\"/relationship/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}if(func2(data5) < 1){const err20 = {instancePath:instancePath+\"/relationship/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}else {const err21 = {instancePath:instancePath+\"/relationship/\" + key3.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/$defs/LocalizedTitle/additionalProperties/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}}else {const err22 = {instancePath:instancePath+\"/relationship\",schemaPath:\"#/$defs/LocalizedTitle/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}if(data.date !== undefined){let data6 = data.date;if(typeof data6 === \"string\"){if(!pattern18.test(data6)){const err23 = {instancePath:instancePath+\"/date\",schemaPath:\"#/$defs/YearMonth/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]{4}-(0[1-9]|1[0-2])$\"},message:\"must match pattern \\\"\"+\"^[0-9]{4}-(0[1-9]|1[0-2])$\"+\"\\\"\"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}else {const err24 = {instancePath:instancePath+\"/date\",schemaPath:\"#/$defs/YearMonth/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}if(data.relatedCareerId !== undefined){let data7 = data.relatedCareerId;if(typeof data7 === \"string\"){if(func2(data7) > 64){const err25 = {instancePath:instancePath+\"/relatedCareerId\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}if(func2(data7) < 1){const err26 = {instancePath:instancePath+\"/relatedCareerId\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}if(!pattern12.test(data7)){const err27 = {instancePath:instancePath+\"/relatedCareerId\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}}else {const err28 = {instancePath:instancePath+\"/relatedCareerId\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}}if(data.relatedEducationId !== undefined){let data8 = data.relatedEducationId;if(typeof data8 === \"string\"){if(func2(data8) > 64){const err29 = {instancePath:instancePath+\"/relatedEducationId\",schemaPath:\"#/$defs/Slug/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}if(func2(data8) < 1){const err30 = {instancePath:instancePath+\"/relatedEducationId\",schemaPath:\"#/$defs/Slug/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}if(!pattern12.test(data8)){const err31 = {instancePath:instancePath+\"/relatedEducationId\",schemaPath:\"#/$defs/Slug/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9][a-z0-9-]*$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9][a-z0-9-]*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}}else {const err32 = {instancePath:instancePath+\"/relatedEducationId\",schemaPath:\"#/$defs/Slug/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}if(data.order !== undefined){let data9 = data.order;if(!(((typeof data9 == \"number\") && (!(data9 % 1) && !isNaN(data9))) && (isFinite(data9)))){const err33 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}if((typeof data9 == \"number\") && (isFinite(data9))){if(data9 < 0 || isNaN(data9)){const err34 = {instancePath:instancePath+\"/order\",schemaPath:\"#/properties/order/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 0},message:\"must be >= 0\"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}}}}else {const err35 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}validate56.errors = vErrors;return errors === 0;}validate56.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema150 = {\"type\":\"object\",\"additionalProperties\":true,\"properties\":{\"email\":{\"$ref\":\"#/$defs/Email\"},\"showEmail\":{\"type\":\"boolean\",\"default\":false},\"formUrl\":{\"$ref\":\"#/$defs/Url\"}}};const schema151 = {\"type\":\"string\",\"format\":\"email\",\"maxLength\":254};const formats32 = /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i;function validate60(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate60.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.email !== undefined){let data0 = data.email;if(typeof data0 === \"string\"){if(func2(data0) > 254){const err0 = {instancePath:instancePath+\"/email\",schemaPath:\"#/$defs/Email/maxLength\",keyword:\"maxLength\",params:{limit: 254},message:\"must NOT have more than 254 characters\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(!(formats32.test(data0))){const err1 = {instancePath:instancePath+\"/email\",schemaPath:\"#/$defs/Email/format\",keyword:\"format\",params:{format: \"email\"},message:\"must match format \\\"\"+\"email\"+\"\\\"\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}else {const err2 = {instancePath:instancePath+\"/email\",schemaPath:\"#/$defs/Email/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}if(data.showEmail !== undefined){if(typeof data.showEmail !== \"boolean\"){const err3 = {instancePath:instancePath+\"/showEmail\",schemaPath:\"#/properties/showEmail/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}if(data.formUrl !== undefined){let data2 = data.formUrl;if(typeof data2 === \"string\"){if(func2(data2) > 2048){const err4 = {instancePath:instancePath+\"/formUrl\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(!(formats2(data2))){const err5 = {instancePath:instancePath+\"/formUrl\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}else {const err6 = {instancePath:instancePath+\"/formUrl\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}}else {const err7 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}validate60.errors = vErrors;return errors === 0;}validate60.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema153 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"defaultLocale\",\"availableLocales\"],\"properties\":{\"defaultLocale\":{\"$ref\":\"#/$defs/LocaleTag\"},\"fallbackLocale\":{\"$ref\":\"#/$defs/LocaleTag\"},\"availableLocales\":{\"type\":\"array\",\"minItems\":1,\"maxItems\":50,\"uniqueItems\":true,\"items\":{\"$ref\":\"#/$defs/LocaleTag\"}},\"theme\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":64,\"description\":\"UI theme identifier. 'default' is the built-in theme; adapters may add more.\"},\"showPoweredBy\":{\"type\":\"boolean\",\"default\":true,\"description\":\"Display the 'Powered by takuhon' attribution in the rendered profile.\"},\"enableJsonLd\":{\"type\":\"boolean\",\"default\":true,\"description\":\"Emit Schema.org JSON-LD on the rendered profile page.\"},\"enableApi\":{\"type\":\"boolean\",\"default\":true,\"description\":\"Expose the public read API endpoints (GET /api/profile, /api/jsonld, /api/schema, /takuhon.json).\"},\"enableAnalytics\":{\"type\":\"boolean\",\"default\":false,\"description\":\"Opt-in flag for first-party analytics. Default is false to keep takuhon privacy-respecting by default.\"},\"activity\":{\"$ref\":\"#/$defs/ActivitySettings\"}}};const schema157 = {\"type\":\"object\",\"additionalProperties\":false,\"description\":\"Opt-in developer-activity dashboard configuration (GitHub / WakaTime). Only the owner-curated settings live here; secrets are provisioned out of band and the synced metrics are stored in a separate document, never in takuhon.json.\",\"properties\":{\"enabled\":{\"type\":\"boolean\",\"default\":false,\"description\":\"Master switch. When false (the default), the activity section is not rendered even if a snapshot exists.\"},\"github\":{\"type\":\"object\",\"additionalProperties\":false,\"required\":[\"username\"],\"properties\":{\"username\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":39,\"description\":\"GitHub login whose public activity is summarized.\"},\"showLanguages\":{\"type\":\"boolean\",\"default\":true},\"showContributions\":{\"type\":\"boolean\",\"default\":true}}},\"wakatime\":{\"type\":\"object\",\"additionalProperties\":false,\"required\":[\"username\"],\"properties\":{\"username\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":255,\"description\":\"WakaTime username whose coding-time stats are summarized.\"},\"showCodingTime\":{\"type\":\"boolean\",\"default\":true}}},\"showRank\":{\"type\":\"boolean\",\"default\":true,\"description\":\"Display the derived activity rank / badge.\"},\"refreshHintHours\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":168,\"description\":\"Advisory refresh cadence in hours. The real cadence is how often the sync step (CLI command or scheduled job) runs.\"}}};const func0 = require(\"ajv/dist/runtime/equal\").default;function validate62(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate62.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.defaultLocale === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"defaultLocale\"},message:\"must have required property '\"+\"defaultLocale\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.availableLocales === undefined){const err1 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"availableLocales\"},message:\"must have required property '\"+\"availableLocales\"+\"'\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.defaultLocale !== undefined){let data0 = data.defaultLocale;if(typeof data0 === \"string\"){if(func2(data0) > 35){const err2 = {instancePath:instancePath+\"/defaultLocale\",schemaPath:\"#/$defs/LocaleTag/maxLength\",keyword:\"maxLength\",params:{limit: 35},message:\"must NOT have more than 35 characters\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(func2(data0) < 2){const err3 = {instancePath:instancePath+\"/defaultLocale\",schemaPath:\"#/$defs/LocaleTag/minLength\",keyword:\"minLength\",params:{limit: 2},message:\"must NOT have fewer than 2 characters\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(!pattern5.test(data0)){const err4 = {instancePath:instancePath+\"/defaultLocale\",schemaPath:\"#/$defs/LocaleTag/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}else {const err5 = {instancePath:instancePath+\"/defaultLocale\",schemaPath:\"#/$defs/LocaleTag/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}if(data.fallbackLocale !== undefined){let data1 = data.fallbackLocale;if(typeof data1 === \"string\"){if(func2(data1) > 35){const err6 = {instancePath:instancePath+\"/fallbackLocale\",schemaPath:\"#/$defs/LocaleTag/maxLength\",keyword:\"maxLength\",params:{limit: 35},message:\"must NOT have more than 35 characters\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}if(func2(data1) < 2){const err7 = {instancePath:instancePath+\"/fallbackLocale\",schemaPath:\"#/$defs/LocaleTag/minLength\",keyword:\"minLength\",params:{limit: 2},message:\"must NOT have fewer than 2 characters\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}if(!pattern5.test(data1)){const err8 = {instancePath:instancePath+\"/fallbackLocale\",schemaPath:\"#/$defs/LocaleTag/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}else {const err9 = {instancePath:instancePath+\"/fallbackLocale\",schemaPath:\"#/$defs/LocaleTag/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}if(data.availableLocales !== undefined){let data2 = data.availableLocales;if(Array.isArray(data2)){if(data2.length > 50){const err10 = {instancePath:instancePath+\"/availableLocales\",schemaPath:\"#/properties/availableLocales/maxItems\",keyword:\"maxItems\",params:{limit: 50},message:\"must NOT have more than 50 items\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}if(data2.length < 1){const err11 = {instancePath:instancePath+\"/availableLocales\",schemaPath:\"#/properties/availableLocales/minItems\",keyword:\"minItems\",params:{limit: 1},message:\"must NOT have fewer than 1 items\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}const len0 = data2.length;for(let i0=0; i0<len0; i0++){let data3 = data2[i0];if(typeof data3 === \"string\"){if(func2(data3) > 35){const err12 = {instancePath:instancePath+\"/availableLocales/\" + i0,schemaPath:\"#/$defs/LocaleTag/maxLength\",keyword:\"maxLength\",params:{limit: 35},message:\"must NOT have more than 35 characters\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}if(func2(data3) < 2){const err13 = {instancePath:instancePath+\"/availableLocales/\" + i0,schemaPath:\"#/$defs/LocaleTag/minLength\",keyword:\"minLength\",params:{limit: 2},message:\"must NOT have fewer than 2 characters\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}if(!pattern5.test(data3)){const err14 = {instancePath:instancePath+\"/availableLocales/\" + i0,schemaPath:\"#/$defs/LocaleTag/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"},message:\"must match pattern \\\"\"+\"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"+\"\\\"\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}else {const err15 = {instancePath:instancePath+\"/availableLocales/\" + i0,schemaPath:\"#/$defs/LocaleTag/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}let i1 = data2.length;let j0;if(i1 > 1){outer0:for(;i1--;){for(j0 = i1; j0--;){if(func0(data2[i1], data2[j0])){const err16 = {instancePath:instancePath+\"/availableLocales\",schemaPath:\"#/properties/availableLocales/uniqueItems\",keyword:\"uniqueItems\",params:{i: i1, j: j0},message:\"must NOT have duplicate items (items ## \"+j0+\" and \"+i1+\" are identical)\"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;break outer0;}}}}}else {const err17 = {instancePath:instancePath+\"/availableLocales\",schemaPath:\"#/properties/availableLocales/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}if(data.theme !== undefined){let data4 = data.theme;if(typeof data4 === \"string\"){if(func2(data4) > 64){const err18 = {instancePath:instancePath+\"/theme\",schemaPath:\"#/properties/theme/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}if(func2(data4) < 1){const err19 = {instancePath:instancePath+\"/theme\",schemaPath:\"#/properties/theme/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}else {const err20 = {instancePath:instancePath+\"/theme\",schemaPath:\"#/properties/theme/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}if(data.showPoweredBy !== undefined){if(typeof data.showPoweredBy !== \"boolean\"){const err21 = {instancePath:instancePath+\"/showPoweredBy\",schemaPath:\"#/properties/showPoweredBy/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}if(data.enableJsonLd !== undefined){if(typeof data.enableJsonLd !== \"boolean\"){const err22 = {instancePath:instancePath+\"/enableJsonLd\",schemaPath:\"#/properties/enableJsonLd/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}if(data.enableApi !== undefined){if(typeof data.enableApi !== \"boolean\"){const err23 = {instancePath:instancePath+\"/enableApi\",schemaPath:\"#/properties/enableApi/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}if(data.enableAnalytics !== undefined){if(typeof data.enableAnalytics !== \"boolean\"){const err24 = {instancePath:instancePath+\"/enableAnalytics\",schemaPath:\"#/properties/enableAnalytics/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}if(data.activity !== undefined){let data9 = data.activity;if(data9 && typeof data9 == \"object\" && !Array.isArray(data9)){for(const key0 in data9){if(!(((((key0 === \"enabled\") || (key0 === \"github\")) || (key0 === \"wakatime\")) || (key0 === \"showRank\")) || (key0 === \"refreshHintHours\"))){const err25 = {instancePath:instancePath+\"/activity\",schemaPath:\"#/$defs/ActivitySettings/additionalProperties\",keyword:\"additionalProperties\",params:{additionalProperty: key0},message:\"must NOT have additional properties\"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}}if(data9.enabled !== undefined){if(typeof data9.enabled !== \"boolean\"){const err26 = {instancePath:instancePath+\"/activity/enabled\",schemaPath:\"#/$defs/ActivitySettings/properties/enabled/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}if(data9.github !== undefined){let data11 = data9.github;if(data11 && typeof data11 == \"object\" && !Array.isArray(data11)){if(data11.username === undefined){const err27 = {instancePath:instancePath+\"/activity/github\",schemaPath:\"#/$defs/ActivitySettings/properties/github/required\",keyword:\"required\",params:{missingProperty: \"username\"},message:\"must have required property '\"+\"username\"+\"'\"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}for(const key1 in data11){if(!(((key1 === \"username\") || (key1 === \"showLanguages\")) || (key1 === \"showContributions\"))){const err28 = {instancePath:instancePath+\"/activity/github\",schemaPath:\"#/$defs/ActivitySettings/properties/github/additionalProperties\",keyword:\"additionalProperties\",params:{additionalProperty: key1},message:\"must NOT have additional properties\"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}}if(data11.username !== undefined){let data12 = data11.username;if(typeof data12 === \"string\"){if(func2(data12) > 39){const err29 = {instancePath:instancePath+\"/activity/github/username\",schemaPath:\"#/$defs/ActivitySettings/properties/github/properties/username/maxLength\",keyword:\"maxLength\",params:{limit: 39},message:\"must NOT have more than 39 characters\"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}if(func2(data12) < 1){const err30 = {instancePath:instancePath+\"/activity/github/username\",schemaPath:\"#/$defs/ActivitySettings/properties/github/properties/username/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}}else {const err31 = {instancePath:instancePath+\"/activity/github/username\",schemaPath:\"#/$defs/ActivitySettings/properties/github/properties/username/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}}if(data11.showLanguages !== undefined){if(typeof data11.showLanguages !== \"boolean\"){const err32 = {instancePath:instancePath+\"/activity/github/showLanguages\",schemaPath:\"#/$defs/ActivitySettings/properties/github/properties/showLanguages/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}if(data11.showContributions !== undefined){if(typeof data11.showContributions !== \"boolean\"){const err33 = {instancePath:instancePath+\"/activity/github/showContributions\",schemaPath:\"#/$defs/ActivitySettings/properties/github/properties/showContributions/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}}else {const err34 = {instancePath:instancePath+\"/activity/github\",schemaPath:\"#/$defs/ActivitySettings/properties/github/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}}if(data9.wakatime !== undefined){let data15 = data9.wakatime;if(data15 && typeof data15 == \"object\" && !Array.isArray(data15)){if(data15.username === undefined){const err35 = {instancePath:instancePath+\"/activity/wakatime\",schemaPath:\"#/$defs/ActivitySettings/properties/wakatime/required\",keyword:\"required\",params:{missingProperty: \"username\"},message:\"must have required property '\"+\"username\"+\"'\"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}for(const key2 in data15){if(!((key2 === \"username\") || (key2 === \"showCodingTime\"))){const err36 = {instancePath:instancePath+\"/activity/wakatime\",schemaPath:\"#/$defs/ActivitySettings/properties/wakatime/additionalProperties\",keyword:\"additionalProperties\",params:{additionalProperty: key2},message:\"must NOT have additional properties\"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}}if(data15.username !== undefined){let data16 = data15.username;if(typeof data16 === \"string\"){if(func2(data16) > 255){const err37 = {instancePath:instancePath+\"/activity/wakatime/username\",schemaPath:\"#/$defs/ActivitySettings/properties/wakatime/properties/username/maxLength\",keyword:\"maxLength\",params:{limit: 255},message:\"must NOT have more than 255 characters\"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}if(func2(data16) < 1){const err38 = {instancePath:instancePath+\"/activity/wakatime/username\",schemaPath:\"#/$defs/ActivitySettings/properties/wakatime/properties/username/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}}else {const err39 = {instancePath:instancePath+\"/activity/wakatime/username\",schemaPath:\"#/$defs/ActivitySettings/properties/wakatime/properties/username/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}}if(data15.showCodingTime !== undefined){if(typeof data15.showCodingTime !== \"boolean\"){const err40 = {instancePath:instancePath+\"/activity/wakatime/showCodingTime\",schemaPath:\"#/$defs/ActivitySettings/properties/wakatime/properties/showCodingTime/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}}}else {const err41 = {instancePath:instancePath+\"/activity/wakatime\",schemaPath:\"#/$defs/ActivitySettings/properties/wakatime/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;}}if(data9.showRank !== undefined){if(typeof data9.showRank !== \"boolean\"){const err42 = {instancePath:instancePath+\"/activity/showRank\",schemaPath:\"#/$defs/ActivitySettings/properties/showRank/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"};if(vErrors === null){vErrors = [err42];}else {vErrors.push(err42);}errors++;}}if(data9.refreshHintHours !== undefined){let data19 = data9.refreshHintHours;if(!(((typeof data19 == \"number\") && (!(data19 % 1) && !isNaN(data19))) && (isFinite(data19)))){const err43 = {instancePath:instancePath+\"/activity/refreshHintHours\",schemaPath:\"#/$defs/ActivitySettings/properties/refreshHintHours/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"};if(vErrors === null){vErrors = [err43];}else {vErrors.push(err43);}errors++;}if((typeof data19 == \"number\") && (isFinite(data19))){if(data19 > 168 || isNaN(data19)){const err44 = {instancePath:instancePath+\"/activity/refreshHintHours\",schemaPath:\"#/$defs/ActivitySettings/properties/refreshHintHours/maximum\",keyword:\"maximum\",params:{comparison: \"<=\", limit: 168},message:\"must be <= 168\"};if(vErrors === null){vErrors = [err44];}else {vErrors.push(err44);}errors++;}if(data19 < 1 || isNaN(data19)){const err45 = {instancePath:instancePath+\"/activity/refreshHintHours\",schemaPath:\"#/$defs/ActivitySettings/properties/refreshHintHours/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 1},message:\"must be >= 1\"};if(vErrors === null){vErrors = [err45];}else {vErrors.push(err45);}errors++;}}}}else {const err46 = {instancePath:instancePath+\"/activity\",schemaPath:\"#/$defs/ActivitySettings/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err46];}else {vErrors.push(err46);}errors++;}}}else {const err47 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err47];}else {vErrors.push(err47);}errors++;}validate62.errors = vErrors;return errors === 0;}validate62.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema158 = {\"type\":\"object\",\"additionalProperties\":true,\"required\":[\"contentLicense\"],\"properties\":{\"createdAt\":{\"$ref\":\"#/$defs/IsoDateTime\"},\"updatedAt\":{\"$ref\":\"#/$defs/IsoDateTime\"},\"generator\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100,\"description\":\"Tool that produced this document (e.g. 'Takuhon', 'create-takuhon@0.1.0').\"},\"contentLicense\":{\"$ref\":\"#/$defs/ContentLicense\"},\"privacy\":{\"$ref\":\"#/$defs/MetaPrivacy\"}}};const schema159 = {\"type\":\"string\",\"format\":\"date-time\",\"description\":\"ISO 8601 date-time (e.g., 2026-05-11T12:34:56Z).\"};const schema164 = {\"type\":\"object\",\"additionalProperties\":true,\"description\":\"Opt-out flags that strip personally identifying fields from public API output (GET /api/profile, /api/jsonld, /takuhon.json). Admin endpoints (PUT /api/admin/*, GET /api/admin/export) ignore these flags. Privacy-by-default: omitting the object or individual flags is equivalent to true.\",\"properties\":{\"hideCredentialIds\":{\"type\":\"boolean\",\"default\":true,\"description\":\"When true (default), strip certifications[*].credentialId from public responses.\"},\"hideEducationGrades\":{\"type\":\"boolean\",\"default\":true,\"description\":\"When true (default), strip education[*].grade from public responses.\"}}};const formats36 = require(\"ajv-formats/dist/formats\").fullFormats[\"date-time\"];const schema161 = {\"type\":\"object\",\"additionalProperties\":false,\"required\":[\"spdxId\"],\"properties\":{\"spdxId\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":64,\"description\":\"SPDX identifier (e.g., 'CC-BY-4.0', 'CC0-1.0') or 'Proprietary'. No default; the profile owner must choose explicitly.\"},\"url\":{\"$ref\":\"#/$defs/Url\"},\"attribution\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":200},\"url\":{\"$ref\":\"#/$defs/Url\"}}},\"rights\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":1000,\"description\":\"Free-form rights statement (used when spdxId='Proprietary' or for additional notices).\"}}};function validate65(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate65.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.spdxId === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"spdxId\"},message:\"must have required property '\"+\"spdxId\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}for(const key0 in data){if(!((((key0 === \"spdxId\") || (key0 === \"url\")) || (key0 === \"attribution\")) || (key0 === \"rights\"))){const err1 = {instancePath,schemaPath:\"#/additionalProperties\",keyword:\"additionalProperties\",params:{additionalProperty: key0},message:\"must NOT have additional properties\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}if(data.spdxId !== undefined){let data0 = data.spdxId;if(typeof data0 === \"string\"){if(func2(data0) > 64){const err2 = {instancePath:instancePath+\"/spdxId\",schemaPath:\"#/properties/spdxId/maxLength\",keyword:\"maxLength\",params:{limit: 64},message:\"must NOT have more than 64 characters\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(func2(data0) < 1){const err3 = {instancePath:instancePath+\"/spdxId\",schemaPath:\"#/properties/spdxId/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}else {const err4 = {instancePath:instancePath+\"/spdxId\",schemaPath:\"#/properties/spdxId/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}if(data.url !== undefined){let data1 = data.url;if(typeof data1 === \"string\"){if(func2(data1) > 2048){const err5 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(!(formats2(data1))){const err6 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}else {const err7 = {instancePath:instancePath+\"/url\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}if(data.attribution !== undefined){let data2 = data.attribution;if(data2 && typeof data2 == \"object\" && !Array.isArray(data2)){for(const key1 in data2){if(!((key1 === \"name\") || (key1 === \"url\"))){const err8 = {instancePath:instancePath+\"/attribution\",schemaPath:\"#/properties/attribution/additionalProperties\",keyword:\"additionalProperties\",params:{additionalProperty: key1},message:\"must NOT have additional properties\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}if(data2.name !== undefined){let data3 = data2.name;if(typeof data3 === \"string\"){if(func2(data3) > 200){const err9 = {instancePath:instancePath+\"/attribution/name\",schemaPath:\"#/properties/attribution/properties/name/maxLength\",keyword:\"maxLength\",params:{limit: 200},message:\"must NOT have more than 200 characters\"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}if(func2(data3) < 1){const err10 = {instancePath:instancePath+\"/attribution/name\",schemaPath:\"#/properties/attribution/properties/name/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}else {const err11 = {instancePath:instancePath+\"/attribution/name\",schemaPath:\"#/properties/attribution/properties/name/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}if(data2.url !== undefined){let data4 = data2.url;if(typeof data4 === \"string\"){if(func2(data4) > 2048){const err12 = {instancePath:instancePath+\"/attribution/url\",schemaPath:\"#/$defs/Url/maxLength\",keyword:\"maxLength\",params:{limit: 2048},message:\"must NOT have more than 2048 characters\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}if(!(formats2(data4))){const err13 = {instancePath:instancePath+\"/attribution/url\",schemaPath:\"#/$defs/Url/format\",keyword:\"format\",params:{format: \"uri\"},message:\"must match format \\\"\"+\"uri\"+\"\\\"\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}else {const err14 = {instancePath:instancePath+\"/attribution/url\",schemaPath:\"#/$defs/Url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}}else {const err15 = {instancePath:instancePath+\"/attribution\",schemaPath:\"#/properties/attribution/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}if(data.rights !== undefined){let data5 = data.rights;if(typeof data5 === \"string\"){if(func2(data5) > 1000){const err16 = {instancePath:instancePath+\"/rights\",schemaPath:\"#/properties/rights/maxLength\",keyword:\"maxLength\",params:{limit: 1000},message:\"must NOT have more than 1000 characters\"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}if(func2(data5) < 1){const err17 = {instancePath:instancePath+\"/rights\",schemaPath:\"#/properties/rights/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}else {const err18 = {instancePath:instancePath+\"/rights\",schemaPath:\"#/properties/rights/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}}else {const err19 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}validate65.errors = vErrors;return errors === 0;}validate65.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};function validate64(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate64.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.contentLicense === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"contentLicense\"},message:\"must have required property '\"+\"contentLicense\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.createdAt !== undefined){let data0 = data.createdAt;if(typeof data0 === \"string\"){if(!(formats36.validate(data0))){const err1 = {instancePath:instancePath+\"/createdAt\",schemaPath:\"#/$defs/IsoDateTime/format\",keyword:\"format\",params:{format: \"date-time\"},message:\"must match format \\\"\"+\"date-time\"+\"\\\"\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}else {const err2 = {instancePath:instancePath+\"/createdAt\",schemaPath:\"#/$defs/IsoDateTime/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}if(data.updatedAt !== undefined){let data1 = data.updatedAt;if(typeof data1 === \"string\"){if(!(formats36.validate(data1))){const err3 = {instancePath:instancePath+\"/updatedAt\",schemaPath:\"#/$defs/IsoDateTime/format\",keyword:\"format\",params:{format: \"date-time\"},message:\"must match format \\\"\"+\"date-time\"+\"\\\"\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}else {const err4 = {instancePath:instancePath+\"/updatedAt\",schemaPath:\"#/$defs/IsoDateTime/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}if(data.generator !== undefined){let data2 = data.generator;if(typeof data2 === \"string\"){if(func2(data2) > 100){const err5 = {instancePath:instancePath+\"/generator\",schemaPath:\"#/properties/generator/maxLength\",keyword:\"maxLength\",params:{limit: 100},message:\"must NOT have more than 100 characters\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(func2(data2) < 1){const err6 = {instancePath:instancePath+\"/generator\",schemaPath:\"#/properties/generator/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}else {const err7 = {instancePath:instancePath+\"/generator\",schemaPath:\"#/properties/generator/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}if(data.contentLicense !== undefined){if(!(validate65(data.contentLicense, {instancePath:instancePath+\"/contentLicense\",parentData:data,parentDataProperty:\"contentLicense\",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate65.errors : vErrors.concat(validate65.errors);errors = vErrors.length;}}if(data.privacy !== undefined){let data4 = data.privacy;if(data4 && typeof data4 == \"object\" && !Array.isArray(data4)){if(data4.hideCredentialIds !== undefined){if(typeof data4.hideCredentialIds !== \"boolean\"){const err8 = {instancePath:instancePath+\"/privacy/hideCredentialIds\",schemaPath:\"#/$defs/MetaPrivacy/properties/hideCredentialIds/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}if(data4.hideEducationGrades !== undefined){if(typeof data4.hideEducationGrades !== \"boolean\"){const err9 = {instancePath:instancePath+\"/privacy/hideEducationGrades\",schemaPath:\"#/$defs/MetaPrivacy/properties/hideEducationGrades/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}}else {const err10 = {instancePath:instancePath+\"/privacy\",schemaPath:\"#/$defs/MetaPrivacy/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}}else {const err11 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}validate64.errors = vErrors;return errors === 0;}validate64.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};function validate20(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL=\"https://takuhon.example/schemas/0.5.0/takuhon.schema.json\" */;let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.schemaVersion === undefined){const err0 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"schemaVersion\"},message:\"must have required property '\"+\"schemaVersion\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.profile === undefined){const err1 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"profile\"},message:\"must have required property '\"+\"profile\"+\"'\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.links === undefined){const err2 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"links\"},message:\"must have required property '\"+\"links\"+\"'\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.careers === undefined){const err3 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"careers\"},message:\"must have required property '\"+\"careers\"+\"'\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data.projects === undefined){const err4 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"projects\"},message:\"must have required property '\"+\"projects\"+\"'\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(data.skills === undefined){const err5 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"skills\"},message:\"must have required property '\"+\"skills\"+\"'\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(data.contact === undefined){const err6 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"contact\"},message:\"must have required property '\"+\"contact\"+\"'\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}if(data.settings === undefined){const err7 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"settings\"},message:\"must have required property '\"+\"settings\"+\"'\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}if(data.meta === undefined){const err8 = {instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: \"meta\"},message:\"must have required property '\"+\"meta\"+\"'\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}for(const key0 in data){if(!(func1.call(schema31.properties, key0))){const err9 = {instancePath,schemaPath:\"#/additionalProperties\",keyword:\"additionalProperties\",params:{additionalProperty: key0},message:\"must NOT have additional properties\"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}if(data.schemaVersion !== undefined){let data0 = data.schemaVersion;if(typeof data0 === \"string\"){if(!pattern4.test(data0)){const err10 = {instancePath:instancePath+\"/schemaVersion\",schemaPath:\"#/properties/schemaVersion/pattern\",keyword:\"pattern\",params:{pattern: \"^[0-9]+\\\\.[0-9]+\\\\.[0-9]+(-[a-zA-Z0-9.-]+)?$\"},message:\"must match pattern \\\"\"+\"^[0-9]+\\\\.[0-9]+\\\\.[0-9]+(-[a-zA-Z0-9.-]+)?$\"+\"\\\"\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}else {const err11 = {instancePath:instancePath+\"/schemaVersion\",schemaPath:\"#/properties/schemaVersion/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}if(data.profile !== undefined){if(!(validate21(data.profile, {instancePath:instancePath+\"/profile\",parentData:data,parentDataProperty:\"profile\",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate21.errors : vErrors.concat(validate21.errors);errors = vErrors.length;}}if(data.links !== undefined){let data2 = data.links;if(Array.isArray(data2)){if(data2.length > 100){const err12 = {instancePath:instancePath+\"/links\",schemaPath:\"#/properties/links/maxItems\",keyword:\"maxItems\",params:{limit: 100},message:\"must NOT have more than 100 items\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}const len0 = data2.length;for(let i0=0; i0<len0; i0++){if(!(validate27(data2[i0], {instancePath:instancePath+\"/links/\" + i0,parentData:data2,parentDataProperty:i0,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate27.errors : vErrors.concat(validate27.errors);errors = vErrors.length;}}}else {const err13 = {instancePath:instancePath+\"/links\",schemaPath:\"#/properties/links/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}if(data.careers !== undefined){let data4 = data.careers;if(Array.isArray(data4)){if(data4.length > 50){const err14 = {instancePath:instancePath+\"/careers\",schemaPath:\"#/properties/careers/maxItems\",keyword:\"maxItems\",params:{limit: 50},message:\"must NOT have more than 50 items\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}const len1 = data4.length;for(let i1=0; i1<len1; i1++){if(!(validate29(data4[i1], {instancePath:instancePath+\"/careers/\" + i1,parentData:data4,parentDataProperty:i1,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate29.errors : vErrors.concat(validate29.errors);errors = vErrors.length;}}}else {const err15 = {instancePath:instancePath+\"/careers\",schemaPath:\"#/properties/careers/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}if(data.projects !== undefined){let data6 = data.projects;if(Array.isArray(data6)){if(data6.length > 100){const err16 = {instancePath:instancePath+\"/projects\",schemaPath:\"#/properties/projects/maxItems\",keyword:\"maxItems\",params:{limit: 100},message:\"must NOT have more than 100 items\"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}const len2 = data6.length;for(let i2=0; i2<len2; i2++){if(!(validate32(data6[i2], {instancePath:instancePath+\"/projects/\" + i2,parentData:data6,parentDataProperty:i2,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate32.errors : vErrors.concat(validate32.errors);errors = vErrors.length;}}}else {const err17 = {instancePath:instancePath+\"/projects\",schemaPath:\"#/properties/projects/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}if(data.skills !== undefined){let data8 = data.skills;if(Array.isArray(data8)){if(data8.length > 200){const err18 = {instancePath:instancePath+\"/skills\",schemaPath:\"#/properties/skills/maxItems\",keyword:\"maxItems\",params:{limit: 200},message:\"must NOT have more than 200 items\"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}const len3 = data8.length;for(let i3=0; i3<len3; i3++){if(!(validate34(data8[i3], {instancePath:instancePath+\"/skills/\" + i3,parentData:data8,parentDataProperty:i3,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate34.errors : vErrors.concat(validate34.errors);errors = vErrors.length;}}}else {const err19 = {instancePath:instancePath+\"/skills\",schemaPath:\"#/properties/skills/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}if(data.certifications !== undefined){let data10 = data.certifications;if(Array.isArray(data10)){if(data10.length > 50){const err20 = {instancePath:instancePath+\"/certifications\",schemaPath:\"#/properties/certifications/maxItems\",keyword:\"maxItems\",params:{limit: 50},message:\"must NOT have more than 50 items\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}const len4 = data10.length;for(let i4=0; i4<len4; i4++){if(!(validate36(data10[i4], {instancePath:instancePath+\"/certifications/\" + i4,parentData:data10,parentDataProperty:i4,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate36.errors : vErrors.concat(validate36.errors);errors = vErrors.length;}}}else {const err21 = {instancePath:instancePath+\"/certifications\",schemaPath:\"#/properties/certifications/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}if(data.memberships !== undefined){let data12 = data.memberships;if(Array.isArray(data12)){if(data12.length > 50){const err22 = {instancePath:instancePath+\"/memberships\",schemaPath:\"#/properties/memberships/maxItems\",keyword:\"maxItems\",params:{limit: 50},message:\"must NOT have more than 50 items\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}const len5 = data12.length;for(let i5=0; i5<len5; i5++){if(!(validate38(data12[i5], {instancePath:instancePath+\"/memberships/\" + i5,parentData:data12,parentDataProperty:i5,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate38.errors : vErrors.concat(validate38.errors);errors = vErrors.length;}}}else {const err23 = {instancePath:instancePath+\"/memberships\",schemaPath:\"#/properties/memberships/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}if(data.volunteering !== undefined){let data14 = data.volunteering;if(Array.isArray(data14)){if(data14.length > 50){const err24 = {instancePath:instancePath+\"/volunteering\",schemaPath:\"#/properties/volunteering/maxItems\",keyword:\"maxItems\",params:{limit: 50},message:\"must NOT have more than 50 items\"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}const len6 = data14.length;for(let i6=0; i6<len6; i6++){if(!(validate40(data14[i6], {instancePath:instancePath+\"/volunteering/\" + i6,parentData:data14,parentDataProperty:i6,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate40.errors : vErrors.concat(validate40.errors);errors = vErrors.length;}}}else {const err25 = {instancePath:instancePath+\"/volunteering\",schemaPath:\"#/properties/volunteering/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}}if(data.honors !== undefined){let data16 = data.honors;if(Array.isArray(data16)){if(data16.length > 50){const err26 = {instancePath:instancePath+\"/honors\",schemaPath:\"#/properties/honors/maxItems\",keyword:\"maxItems\",params:{limit: 50},message:\"must NOT have more than 50 items\"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}const len7 = data16.length;for(let i7=0; i7<len7; i7++){if(!(validate42(data16[i7], {instancePath:instancePath+\"/honors/\" + i7,parentData:data16,parentDataProperty:i7,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate42.errors : vErrors.concat(validate42.errors);errors = vErrors.length;}}}else {const err27 = {instancePath:instancePath+\"/honors\",schemaPath:\"#/properties/honors/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}}if(data.education !== undefined){let data18 = data.education;if(Array.isArray(data18)){if(data18.length > 30){const err28 = {instancePath:instancePath+\"/education\",schemaPath:\"#/properties/education/maxItems\",keyword:\"maxItems\",params:{limit: 30},message:\"must NOT have more than 30 items\"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}const len8 = data18.length;for(let i8=0; i8<len8; i8++){if(!(validate44(data18[i8], {instancePath:instancePath+\"/education/\" + i8,parentData:data18,parentDataProperty:i8,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate44.errors : vErrors.concat(validate44.errors);errors = vErrors.length;}}}else {const err29 = {instancePath:instancePath+\"/education\",schemaPath:\"#/properties/education/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}}if(data.publications !== undefined){let data20 = data.publications;if(Array.isArray(data20)){if(data20.length > 100){const err30 = {instancePath:instancePath+\"/publications\",schemaPath:\"#/properties/publications/maxItems\",keyword:\"maxItems\",params:{limit: 100},message:\"must NOT have more than 100 items\"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}const len9 = data20.length;for(let i9=0; i9<len9; i9++){if(!(validate46(data20[i9], {instancePath:instancePath+\"/publications/\" + i9,parentData:data20,parentDataProperty:i9,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);errors = vErrors.length;}}}else {const err31 = {instancePath:instancePath+\"/publications\",schemaPath:\"#/properties/publications/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}}if(data.languages !== undefined){let data22 = data.languages;if(Array.isArray(data22)){if(data22.length > 30){const err32 = {instancePath:instancePath+\"/languages\",schemaPath:\"#/properties/languages/maxItems\",keyword:\"maxItems\",params:{limit: 30},message:\"must NOT have more than 30 items\"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}const len10 = data22.length;for(let i10=0; i10<len10; i10++){if(!(validate48(data22[i10], {instancePath:instancePath+\"/languages/\" + i10,parentData:data22,parentDataProperty:i10,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate48.errors : vErrors.concat(validate48.errors);errors = vErrors.length;}}}else {const err33 = {instancePath:instancePath+\"/languages\",schemaPath:\"#/properties/languages/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}if(data.courses !== undefined){let data24 = data.courses;if(Array.isArray(data24)){if(data24.length > 100){const err34 = {instancePath:instancePath+\"/courses\",schemaPath:\"#/properties/courses/maxItems\",keyword:\"maxItems\",params:{limit: 100},message:\"must NOT have more than 100 items\"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}const len11 = data24.length;for(let i11=0; i11<len11; i11++){if(!(validate50(data24[i11], {instancePath:instancePath+\"/courses/\" + i11,parentData:data24,parentDataProperty:i11,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate50.errors : vErrors.concat(validate50.errors);errors = vErrors.length;}}}else {const err35 = {instancePath:instancePath+\"/courses\",schemaPath:\"#/properties/courses/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}}if(data.patents !== undefined){let data26 = data.patents;if(Array.isArray(data26)){if(data26.length > 50){const err36 = {instancePath:instancePath+\"/patents\",schemaPath:\"#/properties/patents/maxItems\",keyword:\"maxItems\",params:{limit: 50},message:\"must NOT have more than 50 items\"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}const len12 = data26.length;for(let i12=0; i12<len12; i12++){if(!(validate52(data26[i12], {instancePath:instancePath+\"/patents/\" + i12,parentData:data26,parentDataProperty:i12,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate52.errors : vErrors.concat(validate52.errors);errors = vErrors.length;}}}else {const err37 = {instancePath:instancePath+\"/patents\",schemaPath:\"#/properties/patents/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}}if(data.testScores !== undefined){let data28 = data.testScores;if(Array.isArray(data28)){if(data28.length > 30){const err38 = {instancePath:instancePath+\"/testScores\",schemaPath:\"#/properties/testScores/maxItems\",keyword:\"maxItems\",params:{limit: 30},message:\"must NOT have more than 30 items\"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}const len13 = data28.length;for(let i13=0; i13<len13; i13++){if(!(validate54(data28[i13], {instancePath:instancePath+\"/testScores/\" + i13,parentData:data28,parentDataProperty:i13,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate54.errors : vErrors.concat(validate54.errors);errors = vErrors.length;}}}else {const err39 = {instancePath:instancePath+\"/testScores\",schemaPath:\"#/properties/testScores/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}}if(data.recommendations !== undefined){let data30 = data.recommendations;if(Array.isArray(data30)){if(data30.length > 50){const err40 = {instancePath:instancePath+\"/recommendations\",schemaPath:\"#/properties/recommendations/maxItems\",keyword:\"maxItems\",params:{limit: 50},message:\"must NOT have more than 50 items\"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}const len14 = data30.length;for(let i14=0; i14<len14; i14++){if(!(validate56(data30[i14], {instancePath:instancePath+\"/recommendations/\" + i14,parentData:data30,parentDataProperty:i14,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate56.errors : vErrors.concat(validate56.errors);errors = vErrors.length;}}}else {const err41 = {instancePath:instancePath+\"/recommendations\",schemaPath:\"#/properties/recommendations/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;}}if(data.contact !== undefined){if(!(validate60(data.contact, {instancePath:instancePath+\"/contact\",parentData:data,parentDataProperty:\"contact\",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate60.errors : vErrors.concat(validate60.errors);errors = vErrors.length;}}if(data.settings !== undefined){if(!(validate62(data.settings, {instancePath:instancePath+\"/settings\",parentData:data,parentDataProperty:\"settings\",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate62.errors : vErrors.concat(validate62.errors);errors = vErrors.length;}}if(data.meta !== undefined){if(!(validate64(data.meta, {instancePath:instancePath+\"/meta\",parentData:data,parentDataProperty:\"meta\",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate64.errors : vErrors.concat(validate64.errors);errors = vErrors.length;}}}else {const err42 = {instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"};if(vErrors === null){vErrors = [err42];}else {vErrors.push(err42);}errors++;}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};","{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://takuhon.example/schemas/0.5.0/takuhon.schema.json\",\n \"title\": \"Takuhon Profile\",\n \"description\": \"Portable profile data format consumed by @takuhon/core. The canonical contract for profile content authored as takuhon.json.\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"schemaVersion\",\n \"profile\",\n \"links\",\n \"careers\",\n \"projects\",\n \"skills\",\n \"contact\",\n \"settings\",\n \"meta\"\n ],\n \"properties\": {\n \"schemaVersion\": {\n \"type\": \"string\",\n \"pattern\": \"^[0-9]+\\\\.[0-9]+\\\\.[0-9]+(-[a-zA-Z0-9.-]+)?$\",\n \"description\": \"Semantic version of the takuhon schema this document conforms to.\"\n },\n \"profile\": { \"$ref\": \"#/$defs/Profile\" },\n \"links\": {\n \"type\": \"array\",\n \"maxItems\": 100,\n \"items\": { \"$ref\": \"#/$defs/Link\" }\n },\n \"careers\": {\n \"type\": \"array\",\n \"maxItems\": 50,\n \"items\": { \"$ref\": \"#/$defs/Career\" }\n },\n \"projects\": {\n \"type\": \"array\",\n \"maxItems\": 100,\n \"items\": { \"$ref\": \"#/$defs/Project\" }\n },\n \"skills\": {\n \"type\": \"array\",\n \"maxItems\": 200,\n \"items\": { \"$ref\": \"#/$defs/Skill\" }\n },\n \"certifications\": {\n \"type\": \"array\",\n \"maxItems\": 50,\n \"items\": { \"$ref\": \"#/$defs/Certification\" }\n },\n \"memberships\": {\n \"type\": \"array\",\n \"maxItems\": 50,\n \"items\": { \"$ref\": \"#/$defs/Membership\" }\n },\n \"volunteering\": {\n \"type\": \"array\",\n \"maxItems\": 50,\n \"items\": { \"$ref\": \"#/$defs/Volunteering\" }\n },\n \"honors\": {\n \"type\": \"array\",\n \"maxItems\": 50,\n \"items\": { \"$ref\": \"#/$defs/Honor\" }\n },\n \"education\": {\n \"type\": \"array\",\n \"maxItems\": 30,\n \"items\": { \"$ref\": \"#/$defs/Education\" }\n },\n \"publications\": {\n \"type\": \"array\",\n \"maxItems\": 100,\n \"items\": { \"$ref\": \"#/$defs/Publication\" }\n },\n \"languages\": {\n \"type\": \"array\",\n \"maxItems\": 30,\n \"items\": { \"$ref\": \"#/$defs/Language\" }\n },\n \"courses\": {\n \"type\": \"array\",\n \"maxItems\": 100,\n \"items\": { \"$ref\": \"#/$defs/Course\" }\n },\n \"patents\": {\n \"type\": \"array\",\n \"maxItems\": 50,\n \"items\": { \"$ref\": \"#/$defs/Patent\" }\n },\n \"testScores\": {\n \"type\": \"array\",\n \"maxItems\": 30,\n \"items\": { \"$ref\": \"#/$defs/TestScore\" }\n },\n \"recommendations\": {\n \"type\": \"array\",\n \"maxItems\": 50,\n \"items\": { \"$ref\": \"#/$defs/Recommendation\" }\n },\n \"contact\": { \"$ref\": \"#/$defs/Contact\" },\n \"settings\": { \"$ref\": \"#/$defs/Settings\" },\n \"meta\": { \"$ref\": \"#/$defs/Meta\" }\n },\n \"$defs\": {\n \"LocaleTag\": {\n \"type\": \"string\",\n \"minLength\": 2,\n \"maxLength\": 35,\n \"pattern\": \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\",\n \"description\": \"BCP-47 language tag (e.g., 'en', 'ja', 'zh-Hant', 'pt-BR').\"\n },\n \"Iso3166Alpha2\": {\n \"type\": \"string\",\n \"pattern\": \"^[A-Z]{2}$\",\n \"description\": \"ISO 3166-1 alpha-2 country code (uppercase, two letters).\"\n },\n \"YearMonth\": {\n \"type\": \"string\",\n \"pattern\": \"^[0-9]{4}-(0[1-9]|1[0-2])$\",\n \"description\": \"Year-month in 'YYYY-MM' format (Gregorian calendar).\"\n },\n \"IsoDateTime\": {\n \"type\": \"string\",\n \"format\": \"date-time\",\n \"description\": \"ISO 8601 date-time (e.g., 2026-05-11T12:34:56Z).\"\n },\n \"Url\": {\n \"type\": \"string\",\n \"format\": \"uri\",\n \"maxLength\": 2048\n },\n \"Email\": {\n \"type\": \"string\",\n \"format\": \"email\",\n \"maxLength\": 254\n },\n \"Slug\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 64,\n \"pattern\": \"^[a-z0-9][a-z0-9-]*$\",\n \"description\": \"URL-safe identifier (lowercase alphanumerics and hyphens, must start with alphanumeric).\"\n },\n \"LocalizedTitle\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"propertyNames\": {\n \"type\": \"string\",\n \"pattern\": \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"\n },\n \"additionalProperties\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 200\n },\n \"description\": \"Map of BCP-47 locale tag to short title-like string (max 200 chars per value).\"\n },\n \"LocalizedBody\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"propertyNames\": {\n \"type\": \"string\",\n \"pattern\": \"^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$\"\n },\n \"additionalProperties\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 5000\n },\n \"description\": \"Map of BCP-47 locale tag to body-length string (max 5000 chars per value).\"\n },\n \"LinkType\": {\n \"type\": \"string\",\n \"enum\": [\n \"website\",\n \"blog\",\n \"github\",\n \"gitlab\",\n \"linkedin\",\n \"x\",\n \"mastodon\",\n \"bluesky\",\n \"instagram\",\n \"youtube\",\n \"threads\",\n \"facebook\",\n \"email\",\n \"rss\",\n \"custom\"\n ],\n \"description\": \"Identifies the kind of link. 'custom' requires iconUrl.\"\n },\n \"Profile\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"displayName\"],\n \"properties\": {\n \"displayName\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"tagline\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"bio\": { \"$ref\": \"#/$defs/LocalizedBody\" },\n \"avatar\": { \"$ref\": \"#/$defs/Avatar\" },\n \"location\": { \"$ref\": \"#/$defs/Address\" }\n }\n },\n \"Avatar\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"url\"],\n \"properties\": {\n \"url\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\",\n \"maxLength\": 2048,\n \"description\": \"URL or path to the avatar image.\"\n },\n \"alt\": { \"$ref\": \"#/$defs/LocalizedTitle\" }\n }\n },\n \"Address\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"properties\": {\n \"country\": { \"$ref\": \"#/$defs/Iso3166Alpha2\" },\n \"region\": { \"type\": \"string\", \"maxLength\": 100 },\n \"locality\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"display\": { \"$ref\": \"#/$defs/LocalizedTitle\" }\n }\n },\n \"Link\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"id\", \"type\", \"url\"],\n \"properties\": {\n \"id\": { \"$ref\": \"#/$defs/Slug\" },\n \"type\": { \"$ref\": \"#/$defs/LinkType\" },\n \"label\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"url\": { \"$ref\": \"#/$defs/Url\" },\n \"featured\": { \"type\": \"boolean\" },\n \"order\": { \"type\": \"integer\", \"minimum\": 0 },\n \"iconUrl\": { \"$ref\": \"#/$defs/Url\" }\n },\n \"allOf\": [\n {\n \"if\": {\n \"properties\": { \"type\": { \"const\": \"custom\" } },\n \"required\": [\"type\"]\n },\n \"then\": {\n \"properties\": { \"iconUrl\": { \"$ref\": \"#/$defs/Url\" } },\n \"required\": [\"iconUrl\"]\n }\n }\n ]\n },\n \"Career\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"id\", \"organization\", \"role\", \"startDate\"],\n \"properties\": {\n \"id\": { \"$ref\": \"#/$defs/Slug\" },\n \"organization\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"role\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"description\": { \"$ref\": \"#/$defs/LocalizedBody\" },\n \"startDate\": { \"$ref\": \"#/$defs/YearMonth\" },\n \"endDate\": {\n \"anyOf\": [{ \"$ref\": \"#/$defs/YearMonth\" }, { \"type\": \"null\" }]\n },\n \"isCurrent\": { \"type\": \"boolean\" },\n \"url\": { \"$ref\": \"#/$defs/Url\" },\n \"location\": { \"$ref\": \"#/$defs/Address\" },\n \"order\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"Project\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"id\", \"title\"],\n \"properties\": {\n \"id\": { \"$ref\": \"#/$defs/Slug\" },\n \"title\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"description\": { \"$ref\": \"#/$defs/LocalizedBody\" },\n \"url\": { \"$ref\": \"#/$defs/Url\" },\n \"tags\": {\n \"type\": \"array\",\n \"maxItems\": 30,\n \"items\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 50 }\n },\n \"relatedCareerId\": { \"$ref\": \"#/$defs/Slug\" },\n \"startDate\": { \"$ref\": \"#/$defs/YearMonth\" },\n \"endDate\": {\n \"anyOf\": [{ \"$ref\": \"#/$defs/YearMonth\" }, { \"type\": \"null\" }]\n },\n \"highlighted\": { \"type\": \"boolean\" },\n \"order\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"Skill\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"id\", \"label\"],\n \"properties\": {\n \"id\": { \"$ref\": \"#/$defs/Slug\" },\n \"label\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 100 },\n \"category\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 64,\n \"description\": \"Recommended values (extensible): programming, design, business, communication, language, music, art, sports, other.\"\n },\n \"order\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"Contact\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"properties\": {\n \"email\": { \"$ref\": \"#/$defs/Email\" },\n \"showEmail\": { \"type\": \"boolean\", \"default\": false },\n \"formUrl\": { \"$ref\": \"#/$defs/Url\" }\n }\n },\n \"Settings\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"defaultLocale\", \"availableLocales\"],\n \"properties\": {\n \"defaultLocale\": { \"$ref\": \"#/$defs/LocaleTag\" },\n \"fallbackLocale\": { \"$ref\": \"#/$defs/LocaleTag\" },\n \"availableLocales\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"maxItems\": 50,\n \"uniqueItems\": true,\n \"items\": { \"$ref\": \"#/$defs/LocaleTag\" }\n },\n \"theme\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 64,\n \"description\": \"UI theme identifier. 'default' is the built-in theme; adapters may add more.\"\n },\n \"showPoweredBy\": {\n \"type\": \"boolean\",\n \"default\": true,\n \"description\": \"Display the 'Powered by takuhon' attribution in the rendered profile.\"\n },\n \"enableJsonLd\": {\n \"type\": \"boolean\",\n \"default\": true,\n \"description\": \"Emit Schema.org JSON-LD on the rendered profile page.\"\n },\n \"enableApi\": {\n \"type\": \"boolean\",\n \"default\": true,\n \"description\": \"Expose the public read API endpoints (GET /api/profile, /api/jsonld, /api/schema, /takuhon.json).\"\n },\n \"enableAnalytics\": {\n \"type\": \"boolean\",\n \"default\": false,\n \"description\": \"Opt-in flag for first-party analytics. Default is false to keep takuhon privacy-respecting by default.\"\n },\n \"activity\": { \"$ref\": \"#/$defs/ActivitySettings\" }\n }\n },\n \"ActivitySettings\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"description\": \"Opt-in developer-activity dashboard configuration (GitHub / WakaTime). Only the owner-curated settings live here; secrets are provisioned out of band and the synced metrics are stored in a separate document, never in takuhon.json.\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\",\n \"default\": false,\n \"description\": \"Master switch. When false (the default), the activity section is not rendered even if a snapshot exists.\"\n },\n \"github\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"username\"],\n \"properties\": {\n \"username\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 39,\n \"description\": \"GitHub login whose public activity is summarized.\"\n },\n \"showLanguages\": { \"type\": \"boolean\", \"default\": true },\n \"showContributions\": { \"type\": \"boolean\", \"default\": true }\n }\n },\n \"wakatime\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"username\"],\n \"properties\": {\n \"username\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 255,\n \"description\": \"WakaTime username whose coding-time stats are summarized.\"\n },\n \"showCodingTime\": { \"type\": \"boolean\", \"default\": true }\n }\n },\n \"showRank\": {\n \"type\": \"boolean\",\n \"default\": true,\n \"description\": \"Display the derived activity rank / badge.\"\n },\n \"refreshHintHours\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 168,\n \"description\": \"Advisory refresh cadence in hours. The real cadence is how often the sync step (CLI command or scheduled job) runs.\"\n }\n }\n },\n \"Meta\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"contentLicense\"],\n \"properties\": {\n \"createdAt\": { \"$ref\": \"#/$defs/IsoDateTime\" },\n \"updatedAt\": { \"$ref\": \"#/$defs/IsoDateTime\" },\n \"generator\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 100,\n \"description\": \"Tool that produced this document (e.g. 'Takuhon', 'create-takuhon@0.1.0').\"\n },\n \"contentLicense\": { \"$ref\": \"#/$defs/ContentLicense\" },\n \"privacy\": { \"$ref\": \"#/$defs/MetaPrivacy\" }\n }\n },\n \"ContentLicense\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"spdxId\"],\n \"properties\": {\n \"spdxId\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 64,\n \"description\": \"SPDX identifier (e.g., 'CC-BY-4.0', 'CC0-1.0') or 'Proprietary'. No default; the profile owner must choose explicitly.\"\n },\n \"url\": { \"$ref\": \"#/$defs/Url\" },\n \"attribution\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"name\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 200 },\n \"url\": { \"$ref\": \"#/$defs/Url\" }\n }\n },\n \"rights\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 1000,\n \"description\": \"Free-form rights statement (used when spdxId='Proprietary' or for additional notices).\"\n }\n }\n },\n \"MetaPrivacy\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"description\": \"Opt-out flags that strip personally identifying fields from public API output (GET /api/profile, /api/jsonld, /takuhon.json). Admin endpoints (PUT /api/admin/*, GET /api/admin/export) ignore these flags. Privacy-by-default: omitting the object or individual flags is equivalent to true.\",\n \"properties\": {\n \"hideCredentialIds\": {\n \"type\": \"boolean\",\n \"default\": true,\n \"description\": \"When true (default), strip certifications[*].credentialId from public responses.\"\n },\n \"hideEducationGrades\": {\n \"type\": \"boolean\",\n \"default\": true,\n \"description\": \"When true (default), strip education[*].grade from public responses.\"\n }\n }\n },\n \"Certification\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"id\", \"title\", \"issuingOrganization\", \"issueDate\"],\n \"properties\": {\n \"id\": { \"$ref\": \"#/$defs/Slug\" },\n \"title\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"issuingOrganization\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"issueDate\": { \"$ref\": \"#/$defs/YearMonth\" },\n \"expirationDate\": {\n \"anyOf\": [{ \"$ref\": \"#/$defs/YearMonth\" }, { \"type\": \"null\" }],\n \"description\": \"null = explicitly 'no expiration'. Omit if unknown/unstated.\"\n },\n \"credentialId\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 100,\n \"description\": \"License or certificate number. Public exposure controlled by meta.privacy.hideCredentialIds.\"\n },\n \"url\": { \"$ref\": \"#/$defs/Url\" },\n \"order\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"Membership\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"id\", \"organization\", \"startDate\"],\n \"properties\": {\n \"id\": { \"$ref\": \"#/$defs/Slug\" },\n \"organization\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"role\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"description\": { \"$ref\": \"#/$defs/LocalizedBody\" },\n \"startDate\": { \"$ref\": \"#/$defs/YearMonth\" },\n \"endDate\": {\n \"anyOf\": [{ \"$ref\": \"#/$defs/YearMonth\" }, { \"type\": \"null\" }],\n \"description\": \"null = ongoing. Omit if unknown.\"\n },\n \"isCurrent\": { \"type\": \"boolean\" },\n \"url\": { \"$ref\": \"#/$defs/Url\" },\n \"order\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"Volunteering\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"id\", \"organization\", \"role\", \"startDate\"],\n \"properties\": {\n \"id\": { \"$ref\": \"#/$defs/Slug\" },\n \"organization\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"role\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"cause\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"description\": { \"$ref\": \"#/$defs/LocalizedBody\" },\n \"startDate\": { \"$ref\": \"#/$defs/YearMonth\" },\n \"endDate\": {\n \"anyOf\": [{ \"$ref\": \"#/$defs/YearMonth\" }, { \"type\": \"null\" }]\n },\n \"isCurrent\": { \"type\": \"boolean\" },\n \"url\": { \"$ref\": \"#/$defs/Url\" },\n \"order\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"Honor\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"id\", \"title\", \"issuer\", \"date\"],\n \"properties\": {\n \"id\": { \"$ref\": \"#/$defs/Slug\" },\n \"title\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"issuer\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"description\": { \"$ref\": \"#/$defs/LocalizedBody\" },\n \"date\": { \"$ref\": \"#/$defs/YearMonth\" },\n \"url\": { \"$ref\": \"#/$defs/Url\" },\n \"order\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"Education\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"id\", \"institution\", \"startDate\"],\n \"properties\": {\n \"id\": { \"$ref\": \"#/$defs/Slug\" },\n \"institution\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"degree\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"fieldOfStudy\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"description\": { \"$ref\": \"#/$defs/LocalizedBody\" },\n \"grade\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 50,\n \"description\": \"Free-form grade / class / GPA. Public exposure controlled by meta.privacy.hideEducationGrades.\"\n },\n \"startDate\": { \"$ref\": \"#/$defs/YearMonth\" },\n \"endDate\": {\n \"anyOf\": [{ \"$ref\": \"#/$defs/YearMonth\" }, { \"type\": \"null\" }],\n \"description\": \"null = currently enrolled.\"\n },\n \"isCurrent\": { \"type\": \"boolean\" },\n \"url\": { \"$ref\": \"#/$defs/Url\" },\n \"order\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"Publication\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"id\", \"title\", \"date\"],\n \"properties\": {\n \"id\": { \"$ref\": \"#/$defs/Slug\" },\n \"title\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"publisher\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"description\": { \"$ref\": \"#/$defs/LocalizedBody\" },\n \"date\": { \"$ref\": \"#/$defs/YearMonth\" },\n \"url\": { \"$ref\": \"#/$defs/Url\" },\n \"doi\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 200,\n \"description\": \"DOI identifier (e.g. '10.1145/3548643.3548644'). The full URL goes in 'url'.\"\n },\n \"coAuthors\": {\n \"type\": \"array\",\n \"maxItems\": 50,\n \"items\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 100 },\n \"description\": \"Co-author names in original script. Excludes the profile owner.\"\n },\n \"order\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"Language\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"id\", \"language\", \"proficiency\"],\n \"properties\": {\n \"id\": { \"$ref\": \"#/$defs/Slug\" },\n \"language\": { \"$ref\": \"#/$defs/LocaleTag\" },\n \"displayName\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"proficiency\": {\n \"type\": \"string\",\n \"enum\": [\"native\", \"fluent\", \"professional\", \"intermediate\", \"basic\"],\n \"description\": \"LinkedIn-compatible 5-level proficiency.\"\n },\n \"order\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"Course\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"id\", \"title\"],\n \"properties\": {\n \"id\": { \"$ref\": \"#/$defs/Slug\" },\n \"title\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"provider\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"courseNumber\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 50 },\n \"description\": { \"$ref\": \"#/$defs/LocalizedBody\" },\n \"completionDate\": { \"$ref\": \"#/$defs/YearMonth\" },\n \"certificateUrl\": { \"$ref\": \"#/$defs/Url\" },\n \"relatedEducationId\": {\n \"$ref\": \"#/$defs/Slug\",\n \"description\": \"Optional reference to an education[].id (e.g. for university coursework).\"\n },\n \"order\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"Patent\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"id\", \"title\", \"patentNumber\", \"status\"],\n \"properties\": {\n \"id\": { \"$ref\": \"#/$defs/Slug\" },\n \"title\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"patentNumber\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 100 },\n \"office\": {\n \"type\": \"string\",\n \"maxLength\": 100,\n \"description\": \"Patent office name (e.g. 'USPTO', 'JPO', 'EPO').\"\n },\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\"pending\", \"issued\", \"expired\", \"abandoned\"]\n },\n \"description\": { \"$ref\": \"#/$defs/LocalizedBody\" },\n \"filingDate\": { \"$ref\": \"#/$defs/YearMonth\" },\n \"grantDate\": { \"$ref\": \"#/$defs/YearMonth\" },\n \"url\": { \"$ref\": \"#/$defs/Url\" },\n \"coInventors\": {\n \"type\": \"array\",\n \"maxItems\": 20,\n \"items\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 100 }\n },\n \"order\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"TestScore\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"id\", \"title\", \"score\", \"date\"],\n \"properties\": {\n \"id\": { \"$ref\": \"#/$defs/Slug\" },\n \"title\": { \"$ref\": \"#/$defs/LocalizedTitle\" },\n \"score\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 50,\n \"description\": \"Free-form score string (e.g. '112 / 120', '330', 'N1 Pass', or a percentile). The validator does not interpret its contents.\"\n },\n \"date\": { \"$ref\": \"#/$defs/YearMonth\" },\n \"relatedEducationId\": {\n \"$ref\": \"#/$defs/Slug\",\n \"description\": \"Optional reference to an education[].id (e.g. for a university course exam).\"\n },\n \"description\": { \"$ref\": \"#/$defs/LocalizedBody\" },\n \"url\": { \"$ref\": \"#/$defs/Url\" },\n \"order\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"Recommendation\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"id\", \"body\", \"author\"],\n \"properties\": {\n \"id\": { \"$ref\": \"#/$defs/Slug\" },\n \"body\": { \"$ref\": \"#/$defs/LocalizedBody\" },\n \"author\": { \"$ref\": \"#/$defs/RecommendationAuthor\" },\n \"relationship\": {\n \"$ref\": \"#/$defs/LocalizedTitle\",\n \"description\": \"How the recommender relates to the profile owner (e.g. 'managed directly', 'worked together').\"\n },\n \"date\": { \"$ref\": \"#/$defs/YearMonth\" },\n \"relatedCareerId\": {\n \"$ref\": \"#/$defs/Slug\",\n \"description\": \"Optional reference to a careers[].id (the position the recommendation pertains to).\"\n },\n \"relatedEducationId\": {\n \"$ref\": \"#/$defs/Slug\",\n \"description\": \"Optional reference to an education[].id (e.g. a recommendation from a professor).\"\n },\n \"order\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"RecommendationAuthor\": {\n \"type\": \"object\",\n \"additionalProperties\": true,\n \"required\": [\"name\"],\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 100,\n \"description\": \"Recommender's name, in its original script. Owner-curated; takuhon does not verify it.\"\n },\n \"headline\": {\n \"$ref\": \"#/$defs/LocalizedTitle\",\n \"description\": \"Recommender's title / role / organization at the time of the recommendation.\"\n },\n \"url\": {\n \"$ref\": \"#/$defs/Url\",\n \"description\": \"Link to the recommender's profile, for external verification by the reader.\"\n }\n }\n }\n }\n}\n","/**\n * Re-exports the canonical JSON Schema for takuhon profiles.\n *\n * The schema source of truth lives at `packages/core/takuhon.schema.json`\n * (also distributed via the `@takuhon/core/schema.json` sub-path). This module\n * is the convenient ESM-side entry point for consumers that want to feed it\n * directly to a JSON Schema validator (e.g. Ajv) without a filesystem read.\n */\n\nimport schemaJson from '../takuhon.schema.json' with { type: 'json' };\n\nexport const schema = schemaJson;\nexport type Schema = typeof schemaJson;\n","/**\n * Schema validation for takuhon profile documents.\n *\n * Compiles the canonical {@link import('../takuhon.schema.json')} once at module\n * load and exposes a Result-style {@link validate} that returns either the\n * narrowed {@link Takuhon} value or a list of structured {@link ValidationError}s.\n * The validator is the canonical correctness boundary inside `@takuhon/core`:\n * `normalize` (commit 3) and the API layer (commit 11+) both rely on this\n * function to know the shape they are working with.\n *\n * Design notes:\n * - Returns a discriminated union rather than throwing so callers (CLI,\n * normalize, RFC 7807 Problem Details adapters) can route errors however they\n * like without paying for stack capture on every failure.\n * - Errors carry the RFC 6901 JSON Pointer of the offending value plus the\n * failing Ajv keyword, so consumers can render messages or look up the\n * relevant Spec section without leaking Ajv-specific types.\n * - The Ajv 2020 build is used because the schema declares\n * `$schema: \"https://json-schema.org/draft/2020-12/schema\"`.\n * - The validator is *precompiled* to standalone code at build time\n * (`scripts/generate-validator.mjs`) and imported here, so `validate()`\n * performs no runtime `new Function`/`eval`. That keeps it usable under a\n * strict CSP (`script-src 'self'`, no `'unsafe-eval'`) in the browser admin\n * SPA, and in other eval-restricted runtimes. Regenerate after any schema\n * change via `pnpm --filter @takuhon/core generate` (wired into `prebuild`).\n */\n\nimport type { ErrorObject } from 'ajv';\n\nimport validateTakuhon from './generated/takuhon-validator.cjs';\nimport type { Takuhon } from './types.js';\n\n/**\n * Schema versions this build of `@takuhon/core` accepts directly.\n *\n * The migration registry (Phase 1 commit 6+) will translate older `schemaVersion`\n * values into the current one before validation runs, so this list reflects the\n * versions whose JSON Schema this package literally bundles, not the full\n * support window seen by end users.\n */\nexport const SUPPORTED_SCHEMA_VERSIONS = ['0.1.0', '0.2.0', '0.3.0', '0.4.0', '0.5.0'] as const;\n\n/**\n * A single validation failure.\n *\n * The shape is intentionally schema-agnostic: an API layer can adapt it into an\n * RFC 7807 Problem Details payload, a CLI can render the message, and a future\n * spec-section lookup table can join on {@link pointer} to surface\n * documentation references. A `specSection` field will be added in a later\n * commit; this minimal surface is what commit 2 ships.\n */\nexport interface ValidationError {\n /** RFC 6901 JSON Pointer to the offending value, e.g. `\"/links/4/iconUrl\"`. */\n pointer: string;\n /** Human-readable failure description (sourced from Ajv when available). */\n message: string;\n /**\n * The schema keyword that failed: `'required'`, `'enum'`, `'pattern'`,\n * `'additionalProperties'`, `'format'`, `'maxItems'`, `'maxLength'`, etc.\n * The value `'schemaVersion'` is reserved for documents whose\n * `schemaVersion` lies outside {@link SUPPORTED_SCHEMA_VERSIONS}.\n */\n keyword: string;\n /** JSON Pointer into the schema for the failing rule, e.g. `\"#/$defs/Link/required\"`. */\n schemaPointer?: string;\n}\n\n/** Result of {@link validate}. Narrow on `ok` to access `data` or `errors`. */\nexport type ValidationResult =\n | { ok: true; data: Takuhon }\n | { ok: false; errors: ValidationError[] };\n\n/**\n * Validate an arbitrary value against the bundled takuhon schema.\n *\n * @param data unknown JSON-like value (typically parsed from a `takuhon.json` file)\n * @returns A discriminated result. On success `data` is narrowed to {@link Takuhon};\n * on failure `errors` is a non-empty list of {@link ValidationError}s.\n */\nexport function validate(data: unknown): ValidationResult {\n // Pre-Ajv gate: reject anything that is not a plain object so callers get a\n // clearer top-level error than Ajv's cascade of \"must be object\" / property\n // failures when handed an array, null, or a primitive.\n if (typeof data !== 'object' || data === null || Array.isArray(data)) {\n return {\n ok: false,\n errors: [\n {\n pointer: '',\n message: 'takuhon.json must be a JSON object.',\n keyword: 'type',\n },\n ],\n };\n }\n\n // Pre-Ajv gate: reject documents whose schemaVersion sits outside the\n // supported window with a dedicated keyword. Migration (commit 6+) will\n // translate older versions into the current one before reaching this point.\n const candidate = data as { schemaVersion?: unknown };\n if (typeof candidate.schemaVersion === 'string' && !isSupportedVersion(candidate.schemaVersion)) {\n return {\n ok: false,\n errors: [\n {\n pointer: '/schemaVersion',\n message: `schemaVersion \"${candidate.schemaVersion}\" is not in the supported window (${SUPPORTED_SCHEMA_VERSIONS.join(\n ', ',\n )}).`,\n keyword: 'schemaVersion',\n },\n ],\n };\n }\n\n if (validateTakuhon(data)) {\n // The schema marks several top-level arrays as optional for back-compat\n // (the nine added in 0.2.0, `testScores` in 0.3.0, and `recommendations`\n // in 0.4.0). The TypeScript `Takuhon` shape requires them so\n // downstream code never has to check for `undefined`. We clone the\n // caller's input before coercing so a successful validate() never\n // mutates the original — callers can keep referencing the value they\n // passed in. JS preserves insertion order, so new keys land at the end\n // of the cloned object; `normalize()` is responsible for canonical\n // field order.\n const cloned = JSON.parse(JSON.stringify(data)) as Takuhon;\n coerceMissingArrays(cloned);\n\n // Post-Ajv check: `languages[].language` uniqueness. JSON Schema\n // `uniqueItems` only catches whole-object duplicates and cannot enforce\n // by-key uniqueness, so we walk the array here and reject duplicates as\n // a synthetic ValidationError.\n const duplicate = findDuplicateLanguage(cloned.languages);\n if (duplicate !== undefined) {\n return {\n ok: false,\n errors: [\n {\n pointer: `/languages/${duplicate.index}/language`,\n message: `Duplicate languages[].language value \"${duplicate.tag}\" — each entry must declare a unique BCP-47 tag.`,\n keyword: 'uniqueItems',\n },\n ],\n };\n }\n\n return { ok: true, data: cloned };\n }\n\n return {\n ok: false,\n errors: (validateTakuhon.errors ?? []).map(toValidationError),\n };\n}\n\nconst COERCED_ARRAY_KEYS = [\n 'certifications',\n 'memberships',\n 'volunteering',\n 'honors',\n 'education',\n 'publications',\n 'languages',\n 'courses',\n 'patents',\n 'testScores',\n 'recommendations',\n] as const;\n\nfunction coerceMissingArrays(data: Takuhon): void {\n const bag = data as unknown as Record<string, unknown>;\n for (const key of COERCED_ARRAY_KEYS) {\n if (!Array.isArray(bag[key])) {\n bag[key] = [];\n }\n }\n}\n\nfunction findDuplicateLanguage(\n languages: Takuhon['languages'],\n): { index: number; tag: string } | undefined {\n const seen = new Map<string, number>();\n for (let i = 0; i < languages.length; i++) {\n const entry = languages[i];\n if (entry === undefined) continue;\n const key = entry.language.toLowerCase();\n if (seen.has(key)) return { index: i, tag: entry.language };\n seen.set(key, i);\n }\n return undefined;\n}\n\nfunction isSupportedVersion(value: string): boolean {\n return (SUPPORTED_SCHEMA_VERSIONS as readonly string[]).includes(value);\n}\n\nfunction toValidationError(err: ErrorObject): ValidationError {\n let pointer = err.instancePath;\n\n if (err.keyword === 'required') {\n const missing = (err.params as { missingProperty?: unknown }).missingProperty;\n if (typeof missing === 'string') {\n pointer = `${err.instancePath}/${escapePointerSegment(missing)}`;\n }\n } else if (err.keyword === 'additionalProperties') {\n const extra = (err.params as { additionalProperty?: unknown }).additionalProperty;\n if (typeof extra === 'string') {\n pointer = `${err.instancePath}/${escapePointerSegment(extra)}`;\n }\n }\n\n return {\n pointer,\n message: err.message ?? 'Validation failed.',\n keyword: err.keyword,\n schemaPointer: err.schemaPath ? err.schemaPath : undefined,\n };\n}\n\n/** Escape a JSON Pointer segment per RFC 6901 (~ becomes ~0, / becomes ~1). */\nfunction escapePointerSegment(segment: string): string {\n return segment.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n","/**\n * Canonicalize a {@link Takuhon} document into the form downstream consumers\n * (`@takuhon/api`, `@takuhon/ui`, `@takuhon/jsonld`) can rely on without\n * re-checking shape invariants.\n *\n * Two transformations only:\n * - **Empty-entry cleanup** on every localized field (`LocalizedTitle` /\n * `LocalizedBody`): entries whose string value is empty or whitespace-only\n * are removed so that locale fallback works field-by-field. When the\n * cleanup leaves an optional localized map empty, the map itself is\n * removed (the schema requires `minProperties: 1`).\n * - **Stable sort by `order`** on every list field (`links`, `careers`,\n * `projects`, `skills`). Items without an `order` move to the end while\n * preserving their original relative position (ES2019 stable sort).\n *\n * Design notes:\n * - The input is deep-cloned via `structuredClone`; the original is never\n * mutated. Callers may safely keep a reference to the value they passed in.\n * - `normalize` does *not* canonicalize BCP-47 tag casing nor trim string\n * content. The first is covered by the schema's `propertyNames` pattern and\n * `resolveLocale`'s case-insensitive lookup; the second would silently rewrite\n * author input and is out of scope for Phase 1.\n * - `normalize(normalize(x))` deep-equals `normalize(x)` (idempotent), and the\n * output re-validates against `takuhon.schema.json`. Both invariants are\n * enforced by the unit tests.\n */\n\nimport type {\n LocalizedBody,\n LocalizedTitle,\n Takuhon,\n NormalizedTakuhon,\n Profile,\n} from './types.js';\n\n/**\n * Return a normalized copy of `data`.\n *\n * @param data A takuhon document that has already passed {@link validate}.\n * @returns A new {@link NormalizedTakuhon} with localized empties dropped and\n * list fields sorted by `order`.\n */\nexport function normalize(data: Takuhon): NormalizedTakuhon {\n // A takuhon document is structurally pure JSON (string/number/boolean/null +\n // plain objects / arrays — no Date, Map, Set, BigInt, or functions), so a\n // round-trip through JSON gives an equivalent deep clone without depending\n // on `structuredClone`'s global type declaration (which moves between TS\n // `lib.es2022.d.ts` and `lib.dom.d.ts` across TypeScript major releases).\n const out = JSON.parse(JSON.stringify(data)) as Takuhon;\n\n // Defensive: the schema marks several top-level arrays as optional for\n // back-compat (the nine added in 0.2.0, `testScores` in 0.3.0, and\n // `recommendations` in 0.4.0), so a stored older profile read from KV after\n // an upgrade may arrive here without them. The TypeScript `Takuhon` shape\n // requires them; coerce missing values to `[]` so downstream iteration\n // never trips on `undefined`. Idempotent: arrays already present are left\n // untouched.\n const bag = out as unknown as Record<string, unknown>;\n for (const key of NORMALIZED_ARRAYS) {\n if (!Array.isArray(bag[key])) {\n bag[key] = [];\n }\n }\n\n normalizeProfile(out.profile);\n\n for (const link of out.links) {\n cleanOptionalLocalized(link, 'label');\n }\n out.links = stableSortByOrder(out.links);\n\n for (const career of out.careers) {\n cleanRequiredLocalized(career.organization);\n cleanRequiredLocalized(career.role);\n cleanOptionalLocalized(career, 'description');\n }\n out.careers = stableSortByOrder(out.careers);\n\n for (const project of out.projects) {\n cleanRequiredLocalized(project.title);\n cleanOptionalLocalized(project, 'description');\n }\n out.projects = stableSortByOrder(out.projects);\n\n out.skills = stableSortByOrder(out.skills);\n\n for (const cert of out.certifications) {\n cleanRequiredLocalized(cert.title);\n cleanRequiredLocalized(cert.issuingOrganization);\n }\n out.certifications = stableSortByOrder(out.certifications);\n\n for (const m of out.memberships) {\n cleanRequiredLocalized(m.organization);\n cleanOptionalLocalized(m, 'role');\n cleanOptionalLocalized(m, 'description');\n }\n out.memberships = stableSortByOrder(out.memberships);\n\n for (const v of out.volunteering) {\n cleanRequiredLocalized(v.organization);\n cleanRequiredLocalized(v.role);\n cleanOptionalLocalized(v, 'cause');\n cleanOptionalLocalized(v, 'description');\n }\n out.volunteering = stableSortByOrder(out.volunteering);\n\n for (const h of out.honors) {\n cleanRequiredLocalized(h.title);\n cleanRequiredLocalized(h.issuer);\n cleanOptionalLocalized(h, 'description');\n }\n out.honors = stableSortByOrder(out.honors);\n\n for (const e of out.education) {\n cleanRequiredLocalized(e.institution);\n cleanOptionalLocalized(e, 'degree');\n cleanOptionalLocalized(e, 'fieldOfStudy');\n cleanOptionalLocalized(e, 'description');\n }\n out.education = stableSortByOrder(out.education);\n\n for (const p of out.publications) {\n cleanRequiredLocalized(p.title);\n cleanOptionalLocalized(p, 'publisher');\n cleanOptionalLocalized(p, 'description');\n }\n out.publications = stableSortByOrder(out.publications);\n\n for (const l of out.languages) {\n cleanOptionalLocalized(l, 'displayName');\n }\n out.languages = stableSortByOrder(out.languages);\n\n for (const c of out.courses) {\n cleanRequiredLocalized(c.title);\n cleanOptionalLocalized(c, 'provider');\n cleanOptionalLocalized(c, 'description');\n }\n out.courses = stableSortByOrder(out.courses);\n\n for (const p of out.patents) {\n cleanRequiredLocalized(p.title);\n cleanOptionalLocalized(p, 'description');\n }\n out.patents = stableSortByOrder(out.patents);\n\n for (const t of out.testScores) {\n cleanRequiredLocalized(t.title);\n cleanOptionalLocalized(t, 'description');\n }\n out.testScores = stableSortByOrder(out.testScores);\n\n for (const r of out.recommendations) {\n cleanRequiredLocalized(r.body);\n cleanOptionalLocalized(r, 'relationship');\n cleanOptionalLocalized(r.author, 'headline');\n }\n out.recommendations = stableSortByOrder(out.recommendations);\n\n return out;\n}\n\nfunction normalizeProfile(profile: Profile): void {\n cleanRequiredLocalized(profile.displayName);\n cleanOptionalLocalized(profile, 'tagline');\n cleanOptionalLocalized(profile, 'bio');\n if (profile.avatar) {\n cleanOptionalLocalized(profile.avatar, 'alt');\n }\n if (profile.location) {\n cleanOptionalLocalized(profile.location, 'locality');\n cleanOptionalLocalized(profile.location, 'display');\n }\n}\n\n/** Remove empty / whitespace-only entries from a required localized map in place. */\nfunction cleanRequiredLocalized(map: LocalizedTitle | LocalizedBody): void {\n for (const key of Object.keys(map)) {\n const value = map[key];\n if (value === undefined || value.trim() === '') {\n delete map[key];\n }\n }\n}\n\n/**\n * Remove empty / whitespace-only entries from an optional localized map. When\n * the resulting map is empty, the property is removed from its parent so the\n * document remains schema-valid (`LocalizedTitle` / `LocalizedBody` require\n * `minProperties: 1`).\n */\nfunction cleanOptionalLocalized<\n K extends string,\n T extends Partial<Record<K, LocalizedTitle | LocalizedBody>>,\n>(parent: T, key: K): void {\n const map = parent[key];\n if (!map) return;\n for (const k of Object.keys(map)) {\n const value = map[k];\n if (value === undefined || value.trim() === '') {\n delete map[k];\n }\n }\n if (Object.keys(map).length === 0) {\n delete parent[key];\n }\n}\n\n/** Stable sort items by ascending `order`; entries without `order` go last. */\nfunction stableSortByOrder<T extends { order?: number }>(items: T[]): T[] {\n return items.slice().sort((a, b) => {\n const ao = a.order ?? Number.POSITIVE_INFINITY;\n const bo = b.order ?? Number.POSITIVE_INFINITY;\n return ao - bo;\n });\n}\n\nconst NORMALIZED_ARRAYS = [\n 'certifications',\n 'memberships',\n 'volunteering',\n 'honors',\n 'education',\n 'publications',\n 'languages',\n 'courses',\n 'patents',\n 'testScores',\n 'recommendations',\n] as const;\n","/**\n * BCP-47 locale-tag helpers shared by `normalize()` and `resolveLocale()`.\n *\n * These functions intentionally do not depend on `Intl.Locale`: the schema's\n * `propertyNames` pattern already guarantees structural validity for tags that\n * have passed validation, so this module only needs string-level operations\n * (case-insensitive lookup, primary-subtag fallback, simple regex shape check).\n * Keeping the implementation dependency-free also avoids platform differences\n * between Node, Workers, and modern browsers.\n */\n\n/** Same shape as `takuhon.schema.json`'s `propertyNames` for localized maps. */\nconst BCP47_PATTERN = /^[a-zA-Z]{2,3}(-[a-zA-Z0-9]+)*$/;\n\n/**\n * Return whether a string has the structural shape of a BCP-47 tag accepted\n * by `takuhon.schema.json`. This is a syntactic check only — `'zz'` passes\n * because it matches the regex even though it is not a registered subtag.\n * Semantic validity (registered language / region) is intentionally out of\n * scope; consumers that want it should compose `Intl.Locale` on top.\n */\nexport function isValidBcp47(tag: string): boolean {\n return BCP47_PATTERN.test(tag);\n}\n\n/**\n * Expand a tag into a list of progressively shorter candidates by dropping\n * trailing subtags, e.g. `'zh-Hant-TW' → ['zh-Hant-TW', 'zh-Hant', 'zh']`.\n * Returns the input unchanged for single-subtag inputs (`'en' → ['en']`),\n * and returns `[]` for tags that do not match the BCP-47 shape.\n */\nexport function expandRegional(tag: string): string[] {\n if (!isValidBcp47(tag)) return [];\n const parts = tag.split('-');\n const out: string[] = [];\n for (let i = parts.length; i >= 1; i--) {\n out.push(parts.slice(0, i).join('-'));\n }\n return out;\n}\n\n/** Compare two locale tags ignoring ASCII case (`'EN-us'` matches `'en-US'`). */\nexport function localeMatches(a: string, b: string): boolean {\n return a.toLowerCase() === b.toLowerCase();\n}\n\n/**\n * Look up a value from a locale-keyed map ignoring ASCII case.\n *\n * BCP-47 tags use canonical casing (`zh-Hant`, `pt-BR`) but the spec asks for\n * case-insensitive comparison so consumers can query with `EN-us` or `EN-US`\n * regardless of how the document was authored.\n */\nexport function lookupCaseInsensitive<T>(\n map: Record<string, T> | undefined,\n key: string,\n): T | undefined {\n if (!map) return undefined;\n const direct = map[key];\n if (direct !== undefined) return direct;\n const lower = key.toLowerCase();\n for (const k of Object.keys(map)) {\n if (k.toLowerCase() === lower) return map[k];\n }\n return undefined;\n}\n","/**\n * Reduce a multi-locale {@link Takuhon} document to a single requested locale.\n *\n * Builds a flat candidate chain from the function arguments and `data.settings`,\n * expanding each entry's regional subtag (e.g. `'en-US' → ['en-US', 'en']`),\n * deduplicating case-insensitively, then walks the chain **per field**. The\n * first candidate whose value is non-blank wins for that field; an empty entry\n * (`\"\"` / whitespace-only) falls through to the next candidate just like a\n * missing entry. This matches the spec semantics in [api.md §3.4] where empty\n * values are equivalent to absence.\n *\n * Design notes:\n * - Function arguments (`locale`, `fallbackLocale`) take precedence over\n * `settings.*`, in line with the spec's 7-tier list: HTTP-derived locales\n * (#1-#4) are resolved upstream by `@takuhon/api` and arrive here as\n * `locale` / `fallbackLocale`; `settings.defaultLocale` (#5),\n * `settings.fallbackLocale` (#6), and `settings.availableLocales[0]` (#7)\n * fill the tail.\n * - Invalid tags (`'zz_invalid'`, `'_'`, etc.) are silently dropped rather\n * than throwing. Resolution is best-effort: throwing on a malformed\n * `?lang=` query would push error handling responsibilities back into the\n * API layer for a recoverable case.\n * - A final rescue step appends every `availableLocales` entry so a request\n * with no matching candidate still produces a populated document. If even\n * that fails (only possible for hand-crafted inputs that bypassed\n * `validate`), required strings fall back to `''` and the caller's tests\n * catch the document-level regression.\n * - `resolvedLocale` records the tag that produced `profile.displayName`,\n * which is the field most consumers expose as the canonical locale of the\n * response (e.g. `meta.locale` in API responses, `<html lang>` in UI).\n */\n\nimport { expandRegional, isValidBcp47, lookupCaseInsensitive } from './locale-tag.js';\nimport type {\n Address,\n Avatar,\n Career,\n Certification,\n Course,\n Education,\n Honor,\n Language,\n Link,\n LocaleTag,\n LocalizedAddress,\n LocalizedAvatar,\n LocalizedBody,\n LocalizedCareer,\n LocalizedCertification,\n LocalizedCourse,\n LocalizedEducation,\n LocalizedHonor,\n LocalizedLanguage,\n LocalizedLink,\n LocalizedMembership,\n LocalizedPatent,\n LocalizedProfile,\n LocalizedProject,\n LocalizedPublication,\n LocalizedRecommendation,\n LocalizedRecommendationAuthor,\n LocalizedTakuhon,\n LocalizedTestScore,\n LocalizedTitle,\n LocalizedVolunteering,\n Membership,\n Patent,\n Profile,\n Project,\n Publication,\n Recommendation,\n RecommendationAuthor,\n Takuhon,\n TestScore,\n Volunteering,\n} from './types.js';\n\n/**\n * Resolve a takuhon document to a single locale.\n *\n * @param data A takuhon document (validated; ideally normalized first).\n * @param locale Caller-resolved request locale (e.g. from `?lang=` or\n * `Accept-Language`). Invalid tags are ignored.\n * @param fallbackLocale Caller-supplied secondary candidate when `locale`\n * misses. Invalid tags are ignored.\n */\nexport function resolveLocale(\n data: Takuhon,\n locale?: string,\n fallbackLocale?: string,\n): LocalizedTakuhon {\n const candidates = buildCandidates(data, locale, fallbackLocale);\n const displayPick = pickLocalizedWithTag(data.profile.displayName, candidates);\n\n return {\n schemaVersion: data.schemaVersion,\n profile: resolveProfile(data.profile, candidates, displayPick?.value ?? ''),\n links: data.links.map((l) => resolveLink(l, candidates)),\n careers: data.careers.map((c) => resolveCareer(c, candidates)),\n projects: data.projects.map((p) => resolveProject(p, candidates)),\n skills: data.skills,\n certifications: data.certifications.map((c) => resolveCertification(c, candidates)),\n memberships: data.memberships.map((m) => resolveMembership(m, candidates)),\n volunteering: data.volunteering.map((v) => resolveVolunteering(v, candidates)),\n honors: data.honors.map((h) => resolveHonor(h, candidates)),\n education: data.education.map((e) => resolveEducation(e, candidates)),\n publications: data.publications.map((p) => resolvePublication(p, candidates)),\n languages: data.languages.map((l) => resolveLanguage(l, candidates)),\n courses: data.courses.map((c) => resolveCourse(c, candidates)),\n patents: data.patents.map((p) => resolvePatent(p, candidates)),\n testScores: data.testScores.map((t) => resolveTestScore(t, candidates)),\n recommendations: data.recommendations.map((r) => resolveRecommendation(r, candidates)),\n contact: data.contact,\n settings: data.settings,\n meta: data.meta,\n resolvedLocale: displayPick?.tag ?? candidates[0] ?? '',\n };\n}\n\nfunction buildCandidates(\n data: Takuhon,\n locale: string | undefined,\n fallbackLocale: string | undefined,\n): LocaleTag[] {\n const raw: string[] = [];\n if (locale !== undefined) raw.push(...expandRegional(locale));\n if (fallbackLocale !== undefined) raw.push(...expandRegional(fallbackLocale));\n raw.push(...expandRegional(data.settings.defaultLocale));\n if (data.settings.fallbackLocale !== undefined) {\n raw.push(...expandRegional(data.settings.fallbackLocale));\n }\n for (const tag of data.settings.availableLocales) {\n raw.push(...expandRegional(tag));\n }\n return dedupCaseInsensitive(raw);\n}\n\nfunction dedupCaseInsensitive(tags: string[]): string[] {\n const seen = new Set<string>();\n const out: string[] = [];\n for (const tag of tags) {\n if (!isValidBcp47(tag)) continue;\n const lower = tag.toLowerCase();\n if (seen.has(lower)) continue;\n seen.add(lower);\n out.push(tag);\n }\n return out;\n}\n\nfunction pickLocalizedWithTag(\n field: LocalizedTitle | LocalizedBody | undefined,\n candidates: LocaleTag[],\n): { value: string; tag: LocaleTag } | undefined {\n if (!field) return undefined;\n for (const tag of candidates) {\n const hit = lookupCaseInsensitive(field, tag);\n if (hit !== undefined && hit.trim() !== '') {\n return { value: hit, tag };\n }\n }\n return undefined;\n}\n\nfunction pickLocalized(\n field: LocalizedTitle | LocalizedBody | undefined,\n candidates: LocaleTag[],\n): string | undefined {\n return pickLocalizedWithTag(field, candidates)?.value;\n}\n\nfunction resolveProfile(\n profile: Profile,\n candidates: LocaleTag[],\n displayName: string,\n): LocalizedProfile {\n const out: LocalizedProfile = { displayName };\n\n const tagline = pickLocalized(profile.tagline, candidates);\n if (tagline !== undefined) out.tagline = tagline;\n\n const bio = pickLocalized(profile.bio, candidates);\n if (bio !== undefined) out.bio = bio;\n\n if (profile.avatar) out.avatar = resolveAvatar(profile.avatar, candidates);\n if (profile.location) out.location = resolveAddress(profile.location, candidates);\n\n return out;\n}\n\nfunction resolveAvatar(avatar: Avatar, candidates: LocaleTag[]): LocalizedAvatar {\n const out: LocalizedAvatar = { url: avatar.url };\n const alt = pickLocalized(avatar.alt, candidates);\n if (alt !== undefined) out.alt = alt;\n return out;\n}\n\nfunction resolveAddress(address: Address, candidates: LocaleTag[]): LocalizedAddress {\n const out: LocalizedAddress = {};\n if (address.country !== undefined) out.country = address.country;\n if (address.region !== undefined) out.region = address.region;\n const locality = pickLocalized(address.locality, candidates);\n if (locality !== undefined) out.locality = locality;\n const display = pickLocalized(address.display, candidates);\n if (display !== undefined) out.display = display;\n return out;\n}\n\nfunction resolveLink(link: Link, candidates: LocaleTag[]): LocalizedLink {\n const label = pickLocalized(link.label, candidates);\n if (link.type === 'custom') {\n const out: LocalizedLink = {\n id: link.id,\n type: 'custom',\n url: link.url,\n iconUrl: link.iconUrl,\n };\n if (label !== undefined) out.label = label;\n if (link.featured !== undefined) out.featured = link.featured;\n if (link.order !== undefined) out.order = link.order;\n return out;\n }\n const out: LocalizedLink = {\n id: link.id,\n type: link.type,\n url: link.url,\n };\n if (label !== undefined) out.label = label;\n if (link.featured !== undefined) out.featured = link.featured;\n if (link.order !== undefined) out.order = link.order;\n if (link.iconUrl !== undefined) out.iconUrl = link.iconUrl;\n return out;\n}\n\nfunction resolveCareer(career: Career, candidates: LocaleTag[]): LocalizedCareer {\n const out: LocalizedCareer = {\n id: career.id,\n organization: pickLocalized(career.organization, candidates) ?? '',\n role: pickLocalized(career.role, candidates) ?? '',\n startDate: career.startDate,\n };\n const description = pickLocalized(career.description, candidates);\n if (description !== undefined) out.description = description;\n if (career.endDate !== undefined) out.endDate = career.endDate;\n if (career.isCurrent !== undefined) out.isCurrent = career.isCurrent;\n if (career.url !== undefined) out.url = career.url;\n if (career.order !== undefined) out.order = career.order;\n if (career.location) out.location = resolveAddress(career.location, candidates);\n return out;\n}\n\nfunction resolveProject(project: Project, candidates: LocaleTag[]): LocalizedProject {\n const out: LocalizedProject = {\n id: project.id,\n title: pickLocalized(project.title, candidates) ?? '',\n };\n const description = pickLocalized(project.description, candidates);\n if (description !== undefined) out.description = description;\n if (project.url !== undefined) out.url = project.url;\n if (project.tags !== undefined) out.tags = project.tags;\n if (project.relatedCareerId !== undefined) out.relatedCareerId = project.relatedCareerId;\n if (project.startDate !== undefined) out.startDate = project.startDate;\n if (project.endDate !== undefined) out.endDate = project.endDate;\n if (project.highlighted !== undefined) out.highlighted = project.highlighted;\n if (project.order !== undefined) out.order = project.order;\n return out;\n}\n\nfunction resolveCertification(\n cert: Certification,\n candidates: LocaleTag[],\n): LocalizedCertification {\n const out: LocalizedCertification = {\n id: cert.id,\n title: pickLocalized(cert.title, candidates) ?? '',\n issuingOrganization: pickLocalized(cert.issuingOrganization, candidates) ?? '',\n issueDate: cert.issueDate,\n };\n if (cert.expirationDate !== undefined) out.expirationDate = cert.expirationDate;\n if (cert.credentialId !== undefined) out.credentialId = cert.credentialId;\n if (cert.url !== undefined) out.url = cert.url;\n if (cert.order !== undefined) out.order = cert.order;\n return out;\n}\n\nfunction resolveMembership(membership: Membership, candidates: LocaleTag[]): LocalizedMembership {\n const out: LocalizedMembership = {\n id: membership.id,\n organization: pickLocalized(membership.organization, candidates) ?? '',\n startDate: membership.startDate,\n };\n const role = pickLocalized(membership.role, candidates);\n if (role !== undefined) out.role = role;\n const description = pickLocalized(membership.description, candidates);\n if (description !== undefined) out.description = description;\n if (membership.endDate !== undefined) out.endDate = membership.endDate;\n if (membership.isCurrent !== undefined) out.isCurrent = membership.isCurrent;\n if (membership.url !== undefined) out.url = membership.url;\n if (membership.order !== undefined) out.order = membership.order;\n return out;\n}\n\nfunction resolveVolunteering(v: Volunteering, candidates: LocaleTag[]): LocalizedVolunteering {\n const out: LocalizedVolunteering = {\n id: v.id,\n organization: pickLocalized(v.organization, candidates) ?? '',\n role: pickLocalized(v.role, candidates) ?? '',\n startDate: v.startDate,\n };\n const cause = pickLocalized(v.cause, candidates);\n if (cause !== undefined) out.cause = cause;\n const description = pickLocalized(v.description, candidates);\n if (description !== undefined) out.description = description;\n if (v.endDate !== undefined) out.endDate = v.endDate;\n if (v.isCurrent !== undefined) out.isCurrent = v.isCurrent;\n if (v.url !== undefined) out.url = v.url;\n if (v.order !== undefined) out.order = v.order;\n return out;\n}\n\nfunction resolveHonor(honor: Honor, candidates: LocaleTag[]): LocalizedHonor {\n const out: LocalizedHonor = {\n id: honor.id,\n title: pickLocalized(honor.title, candidates) ?? '',\n issuer: pickLocalized(honor.issuer, candidates) ?? '',\n date: honor.date,\n };\n const description = pickLocalized(honor.description, candidates);\n if (description !== undefined) out.description = description;\n if (honor.url !== undefined) out.url = honor.url;\n if (honor.order !== undefined) out.order = honor.order;\n return out;\n}\n\nfunction resolveEducation(edu: Education, candidates: LocaleTag[]): LocalizedEducation {\n const out: LocalizedEducation = {\n id: edu.id,\n institution: pickLocalized(edu.institution, candidates) ?? '',\n startDate: edu.startDate,\n };\n const degree = pickLocalized(edu.degree, candidates);\n if (degree !== undefined) out.degree = degree;\n const fieldOfStudy = pickLocalized(edu.fieldOfStudy, candidates);\n if (fieldOfStudy !== undefined) out.fieldOfStudy = fieldOfStudy;\n const description = pickLocalized(edu.description, candidates);\n if (description !== undefined) out.description = description;\n if (edu.grade !== undefined) out.grade = edu.grade;\n if (edu.endDate !== undefined) out.endDate = edu.endDate;\n if (edu.isCurrent !== undefined) out.isCurrent = edu.isCurrent;\n if (edu.url !== undefined) out.url = edu.url;\n if (edu.order !== undefined) out.order = edu.order;\n return out;\n}\n\nfunction resolvePublication(pub: Publication, candidates: LocaleTag[]): LocalizedPublication {\n const out: LocalizedPublication = {\n id: pub.id,\n title: pickLocalized(pub.title, candidates) ?? '',\n date: pub.date,\n };\n const publisher = pickLocalized(pub.publisher, candidates);\n if (publisher !== undefined) out.publisher = publisher;\n const description = pickLocalized(pub.description, candidates);\n if (description !== undefined) out.description = description;\n if (pub.url !== undefined) out.url = pub.url;\n if (pub.doi !== undefined) out.doi = pub.doi;\n if (pub.coAuthors !== undefined) out.coAuthors = pub.coAuthors;\n if (pub.order !== undefined) out.order = pub.order;\n return out;\n}\n\nfunction resolveLanguage(lang: Language, candidates: LocaleTag[]): LocalizedLanguage {\n const out: LocalizedLanguage = {\n id: lang.id,\n language: lang.language,\n proficiency: lang.proficiency,\n };\n const displayName = pickLocalized(lang.displayName, candidates);\n if (displayName !== undefined) out.displayName = displayName;\n if (lang.order !== undefined) out.order = lang.order;\n return out;\n}\n\nfunction resolveCourse(course: Course, candidates: LocaleTag[]): LocalizedCourse {\n const out: LocalizedCourse = {\n id: course.id,\n title: pickLocalized(course.title, candidates) ?? '',\n };\n const provider = pickLocalized(course.provider, candidates);\n if (provider !== undefined) out.provider = provider;\n if (course.courseNumber !== undefined) out.courseNumber = course.courseNumber;\n const description = pickLocalized(course.description, candidates);\n if (description !== undefined) out.description = description;\n if (course.completionDate !== undefined) out.completionDate = course.completionDate;\n if (course.certificateUrl !== undefined) out.certificateUrl = course.certificateUrl;\n if (course.relatedEducationId !== undefined) out.relatedEducationId = course.relatedEducationId;\n if (course.order !== undefined) out.order = course.order;\n return out;\n}\n\nfunction resolvePatent(patent: Patent, candidates: LocaleTag[]): LocalizedPatent {\n const out: LocalizedPatent = {\n id: patent.id,\n title: pickLocalized(patent.title, candidates) ?? '',\n patentNumber: patent.patentNumber,\n status: patent.status,\n };\n if (patent.office !== undefined) out.office = patent.office;\n const description = pickLocalized(patent.description, candidates);\n if (description !== undefined) out.description = description;\n if (patent.filingDate !== undefined) out.filingDate = patent.filingDate;\n if (patent.grantDate !== undefined) out.grantDate = patent.grantDate;\n if (patent.url !== undefined) out.url = patent.url;\n if (patent.coInventors !== undefined) out.coInventors = patent.coInventors;\n if (patent.order !== undefined) out.order = patent.order;\n return out;\n}\n\nfunction resolveTestScore(testScore: TestScore, candidates: LocaleTag[]): LocalizedTestScore {\n const out: LocalizedTestScore = {\n id: testScore.id,\n title: pickLocalized(testScore.title, candidates) ?? '',\n score: testScore.score,\n date: testScore.date,\n };\n const description = pickLocalized(testScore.description, candidates);\n if (description !== undefined) out.description = description;\n if (testScore.relatedEducationId !== undefined) {\n out.relatedEducationId = testScore.relatedEducationId;\n }\n if (testScore.url !== undefined) out.url = testScore.url;\n if (testScore.order !== undefined) out.order = testScore.order;\n return out;\n}\n\nfunction resolveRecommendation(\n recommendation: Recommendation,\n candidates: LocaleTag[],\n): LocalizedRecommendation {\n const out: LocalizedRecommendation = {\n id: recommendation.id,\n body: pickLocalized(recommendation.body, candidates) ?? '',\n author: resolveRecommendationAuthor(recommendation.author, candidates),\n };\n const relationship = pickLocalized(recommendation.relationship, candidates);\n if (relationship !== undefined) out.relationship = relationship;\n if (recommendation.date !== undefined) out.date = recommendation.date;\n if (recommendation.relatedCareerId !== undefined) {\n out.relatedCareerId = recommendation.relatedCareerId;\n }\n if (recommendation.relatedEducationId !== undefined) {\n out.relatedEducationId = recommendation.relatedEducationId;\n }\n if (recommendation.order !== undefined) out.order = recommendation.order;\n return out;\n}\n\nfunction resolveRecommendationAuthor(\n author: RecommendationAuthor,\n candidates: LocaleTag[],\n): LocalizedRecommendationAuthor {\n const out: LocalizedRecommendationAuthor = { name: author.name };\n const headline = pickLocalized(author.headline, candidates);\n if (headline !== undefined) out.headline = headline;\n if (author.url !== undefined) out.url = author.url;\n return out;\n}\n","/**\n * Generate Schema.org JSON-LD from a {@link LocalizedTakuhon} document.\n *\n * Emits a `ProfilePage` whose `mainEntity` is the `Person` described by the\n * input. Mapping rules follow the published schema.org mapping spec; the\n * relevant invariants are exercised by the unit tests.\n *\n * Design notes:\n * - Input is the output of `resolveLocale()`, so every localized field is\n * already a single string. No locale fallback happens here.\n * - All optional keys are omitted (not set to `null` / `undefined`) when their\n * source value is absent or empty, so consumers can shallow-merge or\n * `JSON.stringify` the result without post-processing.\n * - The canonical URL surfaced as `ProfilePage.url`, `Person.@id`, and\n * `Person.url` is derived from a single `links[]` entry: `type: 'website'`\n * with `featured: true`. The first match wins (stable after `normalize()`).\n * When no such link exists the three URL-bearing keys are omitted entirely;\n * no placeholder is fabricated.\n * - `profile.tagline` is intentionally not surfaced. `description` carries\n * `profile.bio` only, matching the spec exemplar. Phase 2 may revisit.\n * - `contact.email` is surfaced only when `contact.showEmail === true`\n * (privacy by default).\n * - URLs pass through verbatim. Relative paths in the input remain relative\n * in the output; absolutization is the API/UI layer's responsibility.\n * - Field insertion order on each emitted object is fixed so\n * `JSON.stringify(result)` is deterministic for a given input.\n */\n\nimport type {\n Contact,\n LinkType,\n LocalizedAddress,\n LocalizedAvatar,\n LocalizedCareer,\n LocalizedCertification,\n LocalizedCourse,\n LocalizedEducation,\n LocalizedHonor,\n LocalizedLanguage,\n LocalizedLink,\n LocalizedMembership,\n LocalizedPatent,\n LocalizedProject,\n LocalizedPublication,\n LocalizedTakuhon,\n LocalizedVolunteering,\n Skill,\n} from './types.js';\n\n/**\n * `links[].type` values that count as identity-bearing for the purpose of\n * `Person.sameAs`. `email`, `rss`, and `custom` are excluded: they either\n * carry no identity assertion (`custom`) or are not a profile URL on a\n * third-party platform (`email`, `rss`).\n */\nconst SAMEAS_IDENTITY_TYPES: ReadonlySet<LinkType> = new Set<LinkType>([\n 'github',\n 'gitlab',\n 'linkedin',\n 'x',\n 'mastodon',\n 'bluesky',\n 'instagram',\n 'youtube',\n 'threads',\n 'facebook',\n 'website',\n 'blog',\n]);\n\n/**\n * Build the `Person` JSON-LD object for `data`.\n *\n * @param data A locale-resolved takuhon document.\n * @returns A Schema.org `Person` object. `@context` is included so the\n * returned object is valid as a standalone JSON-LD document.\n */\nexport function generatePersonJsonLd(data: LocalizedTakuhon): object {\n const person = buildPerson(data, deriveCanonicalUrl(data));\n return { '@context': 'https://schema.org', ...person };\n}\n\n/**\n * Build the `ProfilePage` JSON-LD object for `data`, with `Person` inlined\n * as `mainEntity`.\n *\n * @param data A locale-resolved takuhon document.\n */\nexport function generateProfilePageJsonLd(data: LocalizedTakuhon): object {\n const canonicalUrl = deriveCanonicalUrl(data);\n const person = buildPerson(data, canonicalUrl);\n\n const out: Record<string, unknown> = {};\n out['@context'] = 'https://schema.org';\n out['@type'] = 'ProfilePage';\n if (canonicalUrl !== undefined) out.url = canonicalUrl;\n out.inLanguage = data.resolvedLocale;\n if (data.meta.createdAt !== undefined) out.dateCreated = data.meta.createdAt;\n if (data.meta.updatedAt !== undefined) out.dateModified = data.meta.updatedAt;\n if (data.profile.avatar !== undefined) out.primaryImageOfPage = data.profile.avatar.url;\n out.mainEntity = person;\n return out;\n}\n\n/**\n * Build the array of JSON-LD objects to embed in a single\n * `<script type=\"application/ld+json\">` tag.\n *\n * Phase 1 emits a single-element array containing the `ProfilePage`; the\n * `Person` is inlined there as `mainEntity`. The array shape leaves room\n * for later additions (e.g. `WebSite`) without changing the public surface.\n */\nexport function generateJsonLd(data: LocalizedTakuhon): object[] {\n return [generateProfilePageJsonLd(data)];\n}\n\nfunction deriveCanonicalUrl(data: LocalizedTakuhon): string | undefined {\n const featured = data.links.find((l) => l.type === 'website' && l.featured === true);\n return featured?.url;\n}\n\nfunction buildPerson(data: LocalizedTakuhon, canonicalUrl: string | undefined): object {\n const {\n profile,\n careers,\n projects,\n links,\n skills,\n contact,\n certifications,\n memberships,\n volunteering,\n honors,\n education,\n publications,\n languages,\n courses,\n patents,\n } = data;\n\n const out: Record<string, unknown> = {};\n out['@type'] = 'Person';\n if (canonicalUrl !== undefined) out['@id'] = `${canonicalUrl}#person`;\n out.name = profile.displayName;\n if (profile.bio !== undefined) out.description = profile.bio;\n\n const image = buildImage(profile.avatar);\n if (image !== undefined) out.image = image;\n\n if (canonicalUrl !== undefined) out.url = canonicalUrl;\n\n const { current, past } = partitionCareers(careers);\n const roleFields = buildCurrentRoleFields(current);\n if (roleFields.jobTitle !== undefined) out.jobTitle = roleFields.jobTitle;\n if (roleFields.worksFor !== undefined) out.worksFor = roleFields.worksFor;\n\n const address = buildAddress(profile.location);\n if (address !== undefined) out.address = address;\n\n const email = buildEmail(contact);\n if (email !== undefined) out.email = email;\n\n const knowsAbout = buildKnowsAbout(skills);\n if (knowsAbout !== undefined) out.knowsAbout = knowsAbout;\n\n const knowsLanguage = buildKnowsLanguage(languages);\n if (knowsLanguage !== undefined) out.knowsLanguage = knowsLanguage;\n\n const hasCredential = buildCredentials(certifications);\n if (hasCredential !== undefined) out.hasCredential = hasCredential;\n\n const memberOf = buildMemberOf(memberships);\n if (memberOf !== undefined) out.memberOf = memberOf;\n\n const alumniOf = buildAlumniOf(education);\n if (alumniOf !== undefined) out.alumniOf = alumniOf;\n\n const award = buildAwards(honors);\n if (award !== undefined) out.award = award;\n\n const sameAs = buildSameAs(links);\n if (sameAs !== undefined) out.sameAs = sameAs;\n\n const subjectOf = [\n ...buildPastRoles(past),\n ...buildProjects(projects),\n ...buildVolunteeringRoles(volunteering),\n ...buildPublications(publications),\n ...buildCourses(courses),\n ...buildPatentWorks(patents),\n ];\n if (subjectOf.length > 0) out.subjectOf = subjectOf;\n\n return out;\n}\n\nfunction buildImage(avatar: LocalizedAvatar | undefined): object | undefined {\n if (!avatar) return undefined;\n const out: Record<string, unknown> = {};\n out['@type'] = 'ImageObject';\n out.url = avatar.url;\n if (avatar.alt !== undefined) out.caption = avatar.alt;\n return out;\n}\n\nfunction buildAddress(location: LocalizedAddress | undefined): object | undefined {\n if (!location) return undefined;\n const hasAny =\n location.country !== undefined ||\n location.region !== undefined ||\n location.locality !== undefined;\n if (!hasAny) return undefined;\n // `location.display` is intentionally not surfaced: it is a UI-facing\n // pre-formatted string and would duplicate the structured fields here.\n const out: Record<string, unknown> = {};\n out['@type'] = 'PostalAddress';\n if (location.country !== undefined) out.addressCountry = location.country;\n if (location.region !== undefined) out.addressRegion = location.region;\n if (location.locality !== undefined) out.addressLocality = location.locality;\n return out;\n}\n\nfunction partitionCareers(careers: LocalizedCareer[]): {\n current: LocalizedCareer[];\n past: LocalizedCareer[];\n} {\n const current: LocalizedCareer[] = [];\n const past: LocalizedCareer[] = [];\n for (const c of careers) {\n if (c.isCurrent === true) current.push(c);\n else past.push(c);\n }\n return { current, past };\n}\n\nfunction buildCurrentRoleFields(current: LocalizedCareer[]): {\n jobTitle?: string;\n worksFor?: object;\n} {\n const head = current[0];\n if (head === undefined) return {};\n const out: { jobTitle?: string; worksFor?: object } = {};\n if (head.role !== '') out.jobTitle = head.role;\n out.worksFor = buildWorksFor(head);\n return out;\n}\n\nfunction buildWorksFor(career: LocalizedCareer): object {\n const out: Record<string, unknown> = {};\n out['@type'] = 'Organization';\n out.name = career.organization;\n if (career.url !== undefined) out.url = career.url;\n return out;\n}\n\nfunction buildPastRoles(past: LocalizedCareer[]): object[] {\n return past.map((c) => {\n const out: Record<string, unknown> = {};\n out['@type'] = 'WorkRole';\n out.name = c.role;\n out.memberOf = { '@type': 'Organization', name: c.organization };\n out.startDate = c.startDate;\n // `null` denotes an unbounded position; omit so the published JSON-LD\n // does not carry an explicit `null`.\n if (c.endDate !== undefined && c.endDate !== null) out.endDate = c.endDate;\n return out;\n });\n}\n\nfunction buildProjects(projects: LocalizedProject[]): object[] {\n return projects.map((p) => {\n const out: Record<string, unknown> = {};\n out['@type'] = 'CreativeWork';\n out.name = p.title;\n if (p.url !== undefined) out.url = p.url;\n if (p.startDate !== undefined) out.datePublished = p.startDate;\n if (p.tags !== undefined && p.tags.length > 0) out.about = p.tags;\n return out;\n });\n}\n\nfunction buildSameAs(links: LocalizedLink[]): string[] | undefined {\n const out = links.filter((l) => SAMEAS_IDENTITY_TYPES.has(l.type)).map((l) => l.url);\n return out.length === 0 ? undefined : out;\n}\n\nfunction buildKnowsAbout(skills: Skill[]): string[] | undefined {\n if (skills.length === 0) return undefined;\n return skills.map((s) => s.label);\n}\n\nfunction buildEmail(contact: Contact): string | undefined {\n if (contact.showEmail !== true) return undefined;\n if (typeof contact.email !== 'string' || contact.email.length === 0) return undefined;\n return contact.email;\n}\n\nfunction buildKnowsLanguage(languages: LocalizedLanguage[]): string[] | undefined {\n if (languages.length === 0) return undefined;\n return languages.map((l) => l.language);\n}\n\nfunction buildCredentials(certifications: LocalizedCertification[]): object[] | undefined {\n if (certifications.length === 0) return undefined;\n return certifications.map((c) => {\n const out: Record<string, unknown> = {};\n out['@type'] = 'EducationalOccupationalCredential';\n if (c.title !== '') out.name = c.title;\n out.credentialCategory = 'certification';\n if (c.issuingOrganization !== '') {\n out.recognizedBy = {\n '@type': 'Organization',\n name: c.issuingOrganization,\n };\n }\n out.dateCreated = c.issueDate;\n if (c.expirationDate !== undefined && c.expirationDate !== null) {\n out.expires = c.expirationDate;\n }\n if (c.credentialId !== undefined) out.identifier = c.credentialId;\n if (c.url !== undefined) out.url = c.url;\n return out;\n });\n}\n\nfunction buildMemberOf(memberships: LocalizedMembership[]): object[] | undefined {\n if (memberships.length === 0) return undefined;\n // Schema.org Role wrapper pattern: the outer OrganizationRole\n // carries the role/date metadata; the inner `memberOf` Organization names the\n // body itself.\n return memberships.map((m) => {\n const out: Record<string, unknown> = {};\n out['@type'] = 'OrganizationRole';\n if (m.role !== undefined) out.roleName = m.role;\n out.startDate = m.startDate;\n if (m.endDate !== undefined && m.endDate !== null) out.endDate = m.endDate;\n if (m.description !== undefined) out.description = m.description;\n const org: Record<string, unknown> = { '@type': 'Organization', name: m.organization };\n if (m.url !== undefined) org.url = m.url;\n out.memberOf = org;\n return out;\n });\n}\n\nfunction buildAlumniOf(education: LocalizedEducation[]): object[] | undefined {\n if (education.length === 0) return undefined;\n // Schema.org Role wrapper pattern: outer OrganizationRole carries date +\n // concatenated degree/fieldOfStudy as roleName; inner `alumniOf` names\n // the EducationalOrganization.\n return education.map((e) => {\n const out: Record<string, unknown> = {};\n out['@type'] = 'OrganizationRole';\n const roleName = composeRoleName(e.degree, e.fieldOfStudy);\n if (roleName !== undefined) out.roleName = roleName;\n out.startDate = e.startDate;\n if (e.endDate !== undefined && e.endDate !== null) out.endDate = e.endDate;\n const description = composeEducationDescription(e.description, e.grade);\n if (description !== undefined) out.description = description;\n const org: Record<string, unknown> = {\n '@type': 'EducationalOrganization',\n name: e.institution,\n };\n if (e.url !== undefined) org.url = e.url;\n out.alumniOf = org;\n return out;\n });\n}\n\nfunction composeRoleName(\n degree: string | undefined,\n fieldOfStudy: string | undefined,\n): string | undefined {\n if (degree === undefined && fieldOfStudy === undefined) return undefined;\n if (degree !== undefined && fieldOfStudy !== undefined) return `${degree} (${fieldOfStudy})`;\n return degree ?? fieldOfStudy;\n}\n\nfunction composeEducationDescription(\n description: string | undefined,\n grade: string | undefined,\n): string | undefined {\n // `grade` may have already been stripped by the API privacy filter; if it\n // reaches us, prepend a labelled line to the description.\n if (grade !== undefined && description !== undefined) return `Grade: ${grade}. ${description}`;\n if (grade !== undefined) return `Grade: ${grade}`;\n return description;\n}\n\nfunction buildAwards(honors: LocalizedHonor[]): string[] | undefined {\n if (honors.length === 0) return undefined;\n return honors.map((h) => `${h.title} (${h.issuer}, ${h.date})`);\n}\n\nfunction buildVolunteeringRoles(volunteering: LocalizedVolunteering[]): object[] {\n return volunteering.map((v) => {\n const out: Record<string, unknown> = {};\n // Schema.org `VolunteerRole` is a pending property; we use the stable\n // `Role` type with `roleName` so indexers without VolunteerRole support\n // still read meaningful data.\n out['@type'] = 'Role';\n out.roleName = v.role;\n out.startDate = v.startDate;\n if (v.endDate !== undefined && v.endDate !== null) out.endDate = v.endDate;\n const description = composeVolunteeringDescription(v.cause, v.description);\n if (description !== undefined) out.description = description;\n const org: Record<string, unknown> = { '@type': 'Organization', name: v.organization };\n if (v.url !== undefined) org.url = v.url;\n out.memberOf = org;\n return out;\n });\n}\n\nfunction composeVolunteeringDescription(\n cause: string | undefined,\n description: string | undefined,\n): string | undefined {\n if (cause !== undefined && description !== undefined) return `Cause: ${cause}. ${description}`;\n if (cause !== undefined) return `Cause: ${cause}`;\n return description;\n}\n\nfunction buildPublications(publications: LocalizedPublication[]): object[] {\n return publications.map((p) => {\n const out: Record<string, unknown> = {};\n out['@type'] = 'ScholarlyArticle';\n out.name = p.title;\n if (p.publisher !== undefined) {\n out.publisher = { '@type': 'Organization', name: p.publisher };\n }\n out.datePublished = p.date;\n if (p.url !== undefined) out.url = p.url;\n if (p.doi !== undefined) {\n out.identifier = { '@type': 'PropertyValue', propertyID: 'DOI', value: p.doi };\n }\n if (p.coAuthors !== undefined && p.coAuthors.length > 0) {\n out.author = p.coAuthors.map((name) => ({ '@type': 'Person', name }));\n }\n return out;\n });\n}\n\nfunction buildCourses(courses: LocalizedCourse[]): object[] {\n return courses.map((c) => {\n const out: Record<string, unknown> = {};\n out['@type'] = 'Course';\n out.name = c.title;\n if (c.provider !== undefined) {\n out.provider = { '@type': 'Organization', name: c.provider };\n }\n if (c.courseNumber !== undefined) out.courseCode = c.courseNumber;\n if (c.certificateUrl !== undefined) out.url = c.certificateUrl;\n if (c.completionDate !== undefined) {\n // Schema.org Course has no direct date property; dates live on\n // CourseInstance via hasCourseInstance.\n out.hasCourseInstance = {\n '@type': 'CourseInstance',\n endDate: c.completionDate,\n };\n }\n return out;\n });\n}\n\nfunction buildPatentWorks(patents: LocalizedPatent[]): object[] {\n return patents.map((p) => {\n const out: Record<string, unknown> = {};\n // Schema.org Patent is not in the released vocabulary; emit CreativeWork\n // with additionalType pointing at the pending Patent URL so consumers\n // that recognize it can specialize, while others fall back gracefully.\n out['@type'] = 'CreativeWork';\n out.additionalType = 'https://schema.org/Patent';\n out.name = p.title;\n out.identifier = p.patentNumber;\n if (p.office !== undefined) {\n out.publisher = { '@type': 'Organization', name: p.office };\n }\n out.creativeWorkStatus = p.status;\n if (p.grantDate !== undefined) {\n out.datePublished = p.grantDate;\n } else if (p.filingDate !== undefined) {\n out.dateCreated = p.filingDate;\n }\n if (p.url !== undefined) out.url = p.url;\n if (p.coInventors !== undefined && p.coInventors.length > 0) {\n out.author = p.coInventors.map((name) => ({ '@type': 'Person', name }));\n }\n return out;\n });\n}\n","/**\n * Export and import for takuhon profile documents.\n *\n * {@link exportTakuhon} serialises a {@link Takuhon} document into a transport\n * form ({@link ExportedTakuhon}) that can be persisted to a file, an API\n * response, or any other byte-oriented sink. {@link importTakuhon} is the\n * inverse: it validates the input and returns a {@link Takuhon}.\n *\n * Scope of these helpers (deliberately narrow):\n * - Pure, in-memory data transforms — no I/O, no storage adapter coupling.\n * - {@link importTakuhon} **does not** auto-migrate older `schemaVersion`\n * values. Cross-version handling belongs to the CLI / API layer, which\n * composes `importTakuhon` + {@link migrateTakuhon} + storage adapters as\n * spelled out in operational-lifecycle §5.3.\n * - Round-trip equivalence (operational-lifecycle §5.1) is preserved up to\n * the documented `meta.updatedAt` exception.\n *\n * Asset embedding (Base64) and backup creation are out of scope here; both\n * are the storage / API layer's responsibility.\n */\n\nimport type { Takuhon } from './types.js';\nimport { validate, type ValidationError } from './validate.js';\n\n/**\n * Structural alias of {@link Takuhon}: the transport form is the document\n * itself. A wrapping envelope (e.g. `{ format, version, data, hash }`) is\n * intentionally avoided in Phase 1 — adding one later would be a breaking\n * change to the `GET /api/admin/export` response shape and would require a major\n * version bump of `@takuhon/core`.\n */\nexport type ExportedTakuhon = Takuhon;\n\n/** Options for {@link exportTakuhon}. */\nexport interface ExportOptions {\n /**\n * When `true` (default), `meta.updatedAt` is overwritten with the current\n * ISO-8601 timestamp. Set to `false` for byte-for-byte reproducible\n * exports (e.g. roundtrip tests).\n *\n * Round-trip equivalence per operational-lifecycle §5.1 explicitly lists\n * `meta.updatedAt` as the allowed exception.\n */\n updateTimestamp?: boolean;\n}\n\n/**\n * Thrown by {@link importTakuhon} when the input fails schema validation\n * (including an unsupported `schemaVersion`). The `errors` field carries\n * the same {@link ValidationError} list that `validate()` would have\n * returned, so the API layer can map them onto RFC 7807.\n */\nexport class ImportError extends Error {\n readonly errors?: ValidationError[];\n\n constructor(message: string, options?: { cause?: unknown; errors?: ValidationError[] }) {\n super(message, { cause: options?.cause });\n this.name = 'ImportError';\n this.errors = options?.errors;\n }\n}\n\n/**\n * Serialise a {@link Takuhon} into its transport form. The input is\n * deep-cloned via `JSON.parse(JSON.stringify(...))`; the original is never\n * mutated.\n */\nexport function exportTakuhon(data: Takuhon, options: ExportOptions = {}): ExportedTakuhon {\n const out = JSON.parse(JSON.stringify(data)) as ExportedTakuhon;\n if (options.updateTimestamp !== false) {\n out.meta = { ...out.meta, updatedAt: new Date().toISOString() };\n }\n return out;\n}\n\n/**\n * Validate an {@link ExportedTakuhon} and return it as a {@link Takuhon}.\n *\n * On schema validation failure (including an unsupported `schemaVersion`)\n * throws an {@link ImportError} with the structured `errors` attached. The\n * input is not mutated. The return value is a deep clone, so subsequent\n * caller mutations cannot reach back into the supplied document.\n *\n * Cross-version inputs (older `schemaVersion`) are out of scope: callers\n * (CLI / API layer) should run {@link migrateTakuhon} before calling this.\n */\nexport function importTakuhon(data: ExportedTakuhon): Takuhon {\n const result = validate(data);\n if (!result.ok) {\n throw new ImportError('imported document failed schema validation', { errors: result.errors });\n }\n return JSON.parse(JSON.stringify(result.data)) as Takuhon;\n}\n","/**\n * Public-endpoint privacy filter for takuhon profile documents.\n *\n * Strips fields that the spec's privacy posture marks as opt-in for public\n * exposure, before the document reaches a public reader (a public API\n * response, a statically built page, …). The filter is deliberately\n * conservative: when `meta.privacy` is absent the most restrictive\n * interpretation applies (everything sensitive is hidden), and the operator\n * must explicitly opt into disclosure by setting the relevant flag to\n * `false`.\n *\n * This lives in `@takuhon/core` because it is a pure transform over the core\n * document types with no transport coupling, so every public surface — the\n * API layer, the CLI's `build`, future renderers — applies the exact same\n * projection. `@takuhon/api` re-exports it for backwards compatibility.\n *\n * Fields filtered:\n *\n * - `certifications[*].credentialId` — hidden when\n * `meta.privacy.hideCredentialIds !== false` (default true).\n * - `education[*].grade` — hidden when\n * `meta.privacy.hideEducationGrades !== false` (default true).\n * - `contact.email` — hidden when `contact.showEmail !== true`.\n *\n * `patents[*].patentNumber` is **not** filtered. Patent numbers are public\n * records (issued patents are published by the granting office) and Spec\n * §6.21 explicitly excludes them from the privacy block.\n *\n * Behavior:\n *\n * - Pure function. The input is never mutated; a shallow-copied result is\n * returned with only the touched arrays / objects replaced.\n * - When no filter applies (every flag opts into disclosure), the original\n * reference is returned as-is so callers can compare by identity.\n * - Admin endpoints (`/api/admin/*`, including `/api/admin/export`) MUST NOT\n * call this helper — they always serve the full document to authenticated\n * callers.\n */\n\nimport type { LocalizedTakuhon, Takuhon } from './types.js';\n\n/**\n * Union of the two profile shapes that traverse the public path. The fields\n * the filter touches (`certifications[*].credentialId`, `education[*].grade`,\n * `contact.email`) are structurally identical between {@link Takuhon} and\n * {@link LocalizedTakuhon}, so the same logic applies to either shape.\n */\ntype FilterableProfile = Takuhon | LocalizedTakuhon;\n\n/**\n * Return a privacy-filtered copy of `profile` suitable for public responses.\n *\n * @param profile Either a raw {@link Takuhon} or a locale-resolved\n * {@link LocalizedTakuhon}. The output preserves the input's\n * exact shape.\n */\nexport function applyPublicPrivacyFilter<T extends FilterableProfile>(profile: T): T {\n const hideCredentialIds = profile.meta.privacy?.hideCredentialIds !== false;\n const hideEducationGrades = profile.meta.privacy?.hideEducationGrades !== false;\n const allowEmail = profile.contact.showEmail === true;\n\n const stripCertifications = hideCredentialIds && hasAnyCredentialId(profile);\n const stripEducation = hideEducationGrades && hasAnyGrade(profile);\n const stripEmail = !allowEmail && profile.contact.email !== undefined;\n\n if (!stripCertifications && !stripEducation && !stripEmail) {\n return profile;\n }\n\n const out: FilterableProfile = { ...profile };\n\n if (stripCertifications) {\n out.certifications = profile.certifications.map(stripCredentialId) as T['certifications'];\n }\n\n if (stripEducation) {\n out.education = profile.education.map(stripGrade) as T['education'];\n }\n\n if (stripEmail) {\n const { email: _omit, ...rest } = profile.contact;\n out.contact = rest;\n }\n\n return out as T;\n}\n\nfunction hasAnyCredentialId(profile: FilterableProfile): boolean {\n return profile.certifications.some((c) => c.credentialId !== undefined);\n}\n\nfunction hasAnyGrade(profile: FilterableProfile): boolean {\n return profile.education.some((e) => e.grade !== undefined);\n}\n\nfunction stripCredentialId<T extends { credentialId?: string }>(item: T): T {\n if (item.credentialId === undefined) return item;\n const { credentialId: _omit, ...rest } = item;\n return rest as T;\n}\n\nfunction stripGrade<T extends { grade?: string }>(item: T): T {\n if (item.grade === undefined) return item;\n const { grade: _omit, ...rest } = item;\n return rest as T;\n}\n","/**\n * Module-private chain-building helper for the migration registry.\n *\n * Not re-exported from `@takuhon/core`'s public surface: the algorithm is an\n * implementation detail of {@link migrateTakuhon}, and adding it to the\n * public API would freeze its signature under semver. Unit tests import\n * this file directly to exercise the chain logic against synthetic\n * fixtures.\n */\n\nimport type { Takuhon } from '../types.js';\n\nimport type { Migration } from './index.js';\n\n/**\n * Build a forward chain of migrations from `from` to `to`. Returns `[]`\n * when `from === to`, or `null` when no chain exists or a cycle is\n * encountered. The walk is linear (one outgoing edge per `from`); a\n * visited-set guards against cycles introduced by misconfigured registries.\n */\nexport function findMigrationChain(\n from: string,\n to: string,\n registry: readonly Migration<Takuhon, Takuhon>[],\n): Migration<Takuhon, Takuhon>[] | null {\n if (from === to) return [];\n const byFrom = new Map<string, Migration<Takuhon, Takuhon>>();\n for (const m of registry) byFrom.set(m.from, m);\n const chain: Migration<Takuhon, Takuhon>[] = [];\n const visited = new Set<string>([from]);\n let cur = from;\n while (cur !== to) {\n const next = byFrom.get(cur);\n if (!next) return null;\n if (visited.has(next.to)) return null;\n chain.push(next);\n visited.add(next.to);\n cur = next.to;\n }\n return chain;\n}\n","/**\n * Forward migration from schema 0.1.0 to 0.2.0.\n *\n * Adds nine new top-level array fields (`certifications` / `memberships` /\n * `volunteering` / `honors` / `education` / `publications` / `languages` /\n * `courses` / `patents`) and the `meta.privacy` opt-out block. The\n * transformation is additive: existing fields pass through untouched and no\n * 0.1.x value is dropped.\n *\n * Conditional spread is intentional. The 0.1.x schema closes the document\n * root (`additionalProperties: false`), so a validated 0.1.x profile cannot\n * carry pre-existing values at the new keys. The migration nevertheless\n * runs on `unknown`-shaped input that may not have been validated yet — a\n * stored profile authored ahead of time with forward-compatible 0.2.0 keys,\n * an import file from a downstream consumer, etc. Preserving any value\n * already present at these keys prevents data loss in those paths.\n */\n\nimport type { Takuhon } from '../types.js';\n\nimport type { Migration } from './index.js';\n\nexport const v0_1_0_to_v0_2_0: Migration<Takuhon, Takuhon> = {\n from: '0.1.0',\n to: '0.2.0',\n migrate(data: Takuhon): Takuhon {\n const partial = data as Partial<Takuhon>;\n return {\n ...data,\n schemaVersion: '0.2.0',\n certifications: partial.certifications ?? [],\n memberships: partial.memberships ?? [],\n volunteering: partial.volunteering ?? [],\n honors: partial.honors ?? [],\n education: partial.education ?? [],\n publications: partial.publications ?? [],\n languages: partial.languages ?? [],\n courses: partial.courses ?? [],\n patents: partial.patents ?? [],\n };\n },\n};\n","/**\n * Forward migration from schema 0.2.0 to 0.3.0.\n *\n * Adds the `testScores` top-level array (standardized test / exam scores,\n * LinkedIn `Test_Scores.csv` equivalent). The transformation is additive:\n * existing fields pass through untouched and no 0.2.x value is dropped.\n *\n * Conditional spread mirrors `v0.1.0-to-v0.2.0`. The 0.2.x schema closes the\n * document root (`additionalProperties: false`), so a validated 0.2.x profile\n * cannot carry a pre-existing `testScores` value. The migration nevertheless\n * runs on `unknown`-shaped input that may not have been validated yet — a\n * stored profile authored ahead of time with a forward-compatible 0.3.0 key,\n * an import file from a downstream consumer, etc. Preserving any value already\n * present at `testScores` prevents data loss in those paths.\n */\n\nimport type { Takuhon } from '../types.js';\n\nimport type { Migration } from './index.js';\n\nexport const v0_2_0_to_v0_3_0: Migration<Takuhon, Takuhon> = {\n from: '0.2.0',\n to: '0.3.0',\n migrate(data: Takuhon): Takuhon {\n const partial = data as Partial<Takuhon>;\n return {\n ...data,\n schemaVersion: '0.3.0',\n testScores: partial.testScores ?? [],\n };\n },\n};\n","/**\n * Forward migration from schema 0.3.0 to 0.4.0.\n *\n * Adds the `recommendations` top-level array (owner-curated testimonials, the\n * LinkedIn `Recommendations_Received.csv` equivalent). The transformation is\n * additive: existing fields pass through untouched and no 0.3.x value is\n * dropped.\n *\n * Conditional spread mirrors the earlier migrations. The 0.3.x schema closes\n * the document root (`additionalProperties: false`), so a validated 0.3.x\n * profile cannot carry a pre-existing `recommendations` value. The migration\n * nevertheless runs on `unknown`-shaped input that may not have been validated\n * yet — a stored profile authored ahead of time with a forward-compatible\n * 0.4.0 key, an import file from a downstream consumer, etc. Preserving any\n * value already present at `recommendations` prevents data loss in those paths.\n */\n\nimport type { Takuhon } from '../types.js';\n\nimport type { Migration } from './index.js';\n\nexport const v0_3_0_to_v0_4_0: Migration<Takuhon, Takuhon> = {\n from: '0.3.0',\n to: '0.4.0',\n migrate(data: Takuhon): Takuhon {\n const partial = data as Partial<Takuhon>;\n return {\n ...data,\n schemaVersion: '0.4.0',\n recommendations: partial.recommendations ?? [],\n };\n },\n};\n","/**\n * Forward migration from schema 0.4.0 to 0.5.0.\n *\n * 0.5.0 adds the optional `settings.activity` block (developer-activity\n * dashboard configuration). `settings` was already open\n * (`additionalProperties: true`) and the new block is entirely optional, so the\n * migration is purely a version stamp: every existing field — including any\n * `settings.activity` a forward-compatible document already carries — passes\n * through untouched. There is nothing to default.\n */\n\nimport type { Takuhon } from '../types.js';\n\nimport type { Migration } from './index.js';\n\nexport const v0_4_0_to_v0_5_0: Migration<Takuhon, Takuhon> = {\n from: '0.4.0',\n to: '0.5.0',\n migrate(data: Takuhon): Takuhon {\n return {\n ...data,\n schemaVersion: '0.5.0',\n };\n },\n};\n","/**\n * Forward migration registry for `@takuhon/core`.\n *\n * Each migration is a pure function from a takuhon document at version `from`\n * to one at version `to`. The registry is consulted by {@link migrateTakuhon}\n * to build a chain when the requested target is more than one step away\n * (`0.1.0 → 0.3.0` is composed of `0.1.0→0.2.0` and `0.2.0→0.3.0`).\n *\n * Authoring conventions:\n * - File name: `vX.Y.Z-to-vA.B.C.ts`\n * - Pure function: must not mutate input, must not perform I/O\n * - Forward only: downgrades are not provided; recovery is via the backup\n * restore path (operational-lifecycle §4)\n * - Each entry ships with a unit test: sample input/output, idempotency\n * when applicable, and schema-pass against the target version's schema\n *\n * The chain-building algorithm lives in `_chain.ts` and is intentionally\n * not re-exported from `@takuhon/core` — it is an implementation detail of\n * {@link migrateTakuhon}.\n */\n\nimport type { Takuhon } from '../types.js';\n\nimport { v0_1_0_to_v0_2_0 } from './v0.1.0-to-v0.2.0.js';\nimport { v0_2_0_to_v0_3_0 } from './v0.2.0-to-v0.3.0.js';\nimport { v0_3_0_to_v0_4_0 } from './v0.3.0-to-v0.4.0.js';\nimport { v0_4_0_to_v0_5_0 } from './v0.4.0-to-v0.5.0.js';\n\n/**\n * A forward migration entry. `from` and `to` are semver strings matching\n * the `schemaVersion` field of the input and output documents. `migrate`\n * is pure: it must not mutate `data`.\n */\nexport interface Migration<From, To> {\n from: string;\n to: string;\n migrate(data: From): To;\n}\n\n/**\n * Forward migrations bundled with this build of `@takuhon/core`.\n *\n * Entries are listed in the order they would chain for forward migration\n * (`0.1.0 → 0.2.0 → 0.3.0 → ...`). {@link migrateTakuhon} consults this\n * array to build the chain between a source `schemaVersion` and a target.\n */\nexport const migrations: readonly Migration<Takuhon, Takuhon>[] = [\n v0_1_0_to_v0_2_0,\n v0_2_0_to_v0_3_0,\n v0_3_0_to_v0_4_0,\n v0_4_0_to_v0_5_0,\n];\n","/**\n * Forward migration entry point for takuhon documents.\n *\n * {@link migrateTakuhon} composes a chain of {@link Migration} entries from\n * the registry (`./migrations`) and applies them in order. The registry\n * currently ships the `0.1.0 → 0.2.0`, `0.2.0 → 0.3.0`, `0.3.0 → 0.4.0`, and\n * `0.4.0 → 0.5.0` forward migrations; a request whose source has no chain to\n * the target throws {@link MigrationError}.\n *\n * Scope (deliberately narrow, mirroring `export.ts`):\n * - Pure data transform — no I/O, no backup creation, no storage write.\n * - Backup-before-migrate (operational-lifecycle §3.1) is the storage /\n * API layer's responsibility; this function only transforms the\n * in-memory document.\n * - Forward only (operational-lifecycle §2.4); downgrade is via restore.\n */\n\nimport { findMigrationChain } from './migrations/_chain.js';\nimport { migrations } from './migrations/index.js';\nimport type { Takuhon } from './types.js';\n\n/**\n * Thrown by {@link migrateTakuhon} when no forward chain connects the\n * source `schemaVersion` to `targetVersion`. The message includes both\n * versions so the API layer can surface an actionable RFC 7807 problem.\n */\nexport class MigrationError extends Error {\n constructor(message: string, options?: { cause?: unknown }) {\n super(message, options);\n this.name = 'MigrationError';\n }\n}\n\n/**\n * Migrate a takuhon document forward to `targetVersion`. Returns a deep\n * clone; the input is never mutated, even when a migration throws.\n *\n * @throws {MigrationError} when no forward chain exists from\n * `data.schemaVersion` to `targetVersion`.\n */\nexport function migrateTakuhon(data: Takuhon, targetVersion: string): Takuhon {\n const sourceVersion = data.schemaVersion;\n if (sourceVersion === targetVersion) {\n return JSON.parse(JSON.stringify(data)) as Takuhon;\n }\n const chain = findMigrationChain(sourceVersion, targetVersion, migrations);\n if (!chain) {\n throw new MigrationError(`No migration path from ${sourceVersion} to ${targetVersion}`);\n }\n let current: Takuhon = JSON.parse(JSON.stringify(data)) as Takuhon;\n for (const step of chain) {\n current = step.migrate(current);\n }\n return current;\n}\n","/**\n * Persistence contracts for takuhon profile documents and binary assets.\n *\n * Adapters (KV / R2 / filesystem / SQLite / …) implement these interfaces to\n * plug into `@takuhon/api`. All methods are async; failures surface as\n * exceptions in the {@link StorageError} family so the API layer can map them\n * onto RFC 7807 problem details.\n *\n * Design notes:\n * - `version` is an opaque ETag-like token (UUID, hash, monotonic counter —\n * the adapter chooses). It powers HTTP `If-Match` style optimistic locking\n * and is unrelated to {@link Takuhon.schemaVersion}, which describes the\n * document's data-model version.\n * - `getProfile()` returns a raw {@link Takuhon}, not a normalized or\n * locale-resolved one. Normalization and locale resolution belong to the\n * API / render layer; storage only persists.\n * - `saveProfile(data, ifMatch?)` rejects with {@link ConflictError} when\n * `ifMatch` is supplied and does not equal the current stored version.\n * When `ifMatch` is omitted, the adapter's policy decides whether to\n * overwrite unconditionally; per-implementation docs spell this out.\n * - `TakuhonAssetStorage` is intentionally a separate interface so deployments\n * that don't host user-uploaded media (e.g. static export) can omit it.\n * - The naming standardises on the lowercase \"Takuhon\" word (cf.\n * {@link Takuhon}, {@link LocalizedTakuhon}, `normalize`, `validate`) even\n * where upstream documents write \"Takuhon\".\n */\n\nimport type { ActivitySnapshot } from './activity.js';\nimport type { Takuhon } from './types.js';\n\n/**\n * Persistence contract for the single profile document of a takuhon instance.\n *\n * Implementations: Cloudflare KV (Phase 3), filesystem (Phase 3+), in-memory\n * test doubles, and future SQL adapters.\n */\nexport interface TakuhonStorage {\n /**\n * Read the current profile document and its opaque version token.\n *\n * @throws {NotFoundError} when no profile has been saved yet.\n */\n getProfile(): Promise<{ data: Takuhon; version: string }>;\n\n /**\n * Replace the profile document. The returned `version` is the new opaque\n * token to supply as the next `ifMatch`.\n *\n * @param data the document to persist (raw, not normalized)\n * @param ifMatch when set, the adapter rejects the write unless the\n * current stored version equals this token\n * @throws {ConflictError} when `ifMatch` is supplied and does not equal\n * the current stored version\n */\n saveProfile(data: Takuhon, ifMatch?: string): Promise<{ version: string }>;\n\n /**\n * Remove the profile document. Idempotent: no error when nothing is stored.\n */\n deleteProfile(): Promise<void>;\n}\n\n/**\n * Metadata for a stored binary asset, returned by {@link TakuhonAssetStorage}.\n *\n * `url` is the relative path used inside the document (`/assets/...`);\n * `publicUrl` is the absolute URL a browser can fetch. The two are kept\n * distinct because adapters may serve assets from a different host than the\n * profile (e.g. Cloudflare R2 + custom CDN).\n */\nexport interface AssetRecord {\n id: string;\n url: string;\n publicUrl: string;\n mimeType: string;\n size: number;\n width?: number;\n height?: number;\n /** ISO-8601 timestamp. */\n createdAt?: string;\n}\n\n/**\n * Caller hints for {@link TakuhonAssetStorage.putAsset}. Both fields are\n * optional; when omitted, the adapter falls back to the `File` / `Blob`\n * metadata.\n *\n * The caller (`@takuhon/api`'s admin app) verifies the magic bytes, enforces\n * the size / dimension / frame limits, and strips metadata (EXIF / IPTC / XMP /\n * color profile) before calling `putAsset`, using the shared `@takuhon/core`\n * image helpers, so every adapter applies the same checks. An adapter therefore\n * persists the already-validated, already-stripped bytes verbatim and is\n * responsible only for storage and key/URL generation.\n */\nexport interface AssetOptions {\n filename?: string;\n contentType?: string;\n}\n\n/**\n * Persistence contract for binary assets (avatars, project images, …).\n *\n * `listAssets()` is unbounded by design for the MVP; later phases may\n * introduce paginated semantics with a different return shape. `getPublicUrl()`\n * takes only an `assetId` today; a future options object (e.g. `expiresIn`\n * for signed URLs) would be added in a backward-compatible way.\n */\nexport interface TakuhonAssetStorage {\n putAsset(file: File | Blob, options?: AssetOptions): Promise<AssetRecord>;\n /** @throws {NotFoundError} when no asset exists for `assetId`. */\n getPublicUrl(assetId: string): Promise<string>;\n /** Idempotent: no error when the asset is already absent. */\n deleteAsset(assetId: string): Promise<void>;\n listAssets(): Promise<AssetRecord[]>;\n}\n\n/**\n * Persistence contract for the developer-activity snapshot (see\n * {@link ActivitySnapshot}). Like {@link TakuhonAssetStorage}, this is a\n * separate, optional interface so deployments that don't enable the activity\n * feature can omit it entirely.\n *\n * Unlike {@link TakuhonStorage}, there is no optimistic-locking `version`: the\n * snapshot is machine-written by a sync step (a CLI command or a scheduled job)\n * with last-writer-wins semantics and is never concurrently hand-edited.\n */\nexport interface ActivityStorage {\n /**\n * Read the current activity snapshot, or `null` when none has been synced\n * yet. Returns `null` rather than throwing {@link NotFoundError}: an absent\n * snapshot is the normal opt-out / pre-sync state, and the renderer omits the\n * activity section gracefully when it is `null`.\n */\n getActivitySnapshot(): Promise<ActivitySnapshot | null>;\n /** Replace the stored snapshot (last-writer-wins; no precondition). */\n saveActivitySnapshot(snapshot: ActivitySnapshot): Promise<void>;\n}\n\n/**\n * Base class for errors thrown by storage adapters. Catch this to handle\n * any storage-layer failure uniformly; check `instanceof` of a subclass\n * (e.g. {@link NotFoundError}, {@link ConflictError}) to discriminate.\n */\nexport class StorageError extends Error {\n constructor(message: string, options?: { cause?: unknown }) {\n super(message, options);\n this.name = 'StorageError';\n }\n}\n\n/** Thrown when a requested resource (profile or asset) does not exist. */\nexport class NotFoundError extends StorageError {\n constructor(message: string, options?: { cause?: unknown }) {\n super(message, options);\n this.name = 'NotFoundError';\n }\n}\n\n/**\n * Thrown when an optimistic-locking precondition fails: the caller supplied\n * an `ifMatch` token that does not equal the current stored version.\n *\n * `currentVersion` (when set) carries the actual current version so the\n * caller can decide between refetch-and-retry and surfacing a 409 to the\n * end user without an extra round trip.\n */\nexport class ConflictError extends StorageError {\n readonly currentVersion?: string;\n\n constructor(message: string, options?: { currentVersion?: string; cause?: unknown }) {\n super(message, { cause: options?.cause });\n this.name = 'ConflictError';\n this.currentVersion = options?.currentVersion;\n }\n}\n","/**\n * Developer-activity snapshot: types, a runtime type-guard, and the pure,\n * network-free transforms that turn raw GitHub / WakaTime figures into the\n * stored, render-ready shape.\n *\n * This module is deliberately dependency-free and platform-independent — it\n * never performs I/O or network access. Fetching the raw figures from GitHub /\n * WakaTime lives in a separate, runtime-aware package (`@takuhon/activity`);\n * core only owns the data shape and the deterministic transforms, so every\n * runtime renders identical output from the same snapshot.\n *\n * The {@link ActivitySnapshot} is NOT part of the canonical `takuhon.json`\n * document. It is machine-written by a sync step (a CLI command or a scheduled\n * job), persisted in a sibling document via {@link ActivityStorage}, and read\n * by the renderer. Keeping it out of the canonical, owner-curated identity\n * document is intentional: externally-sourced, volatile metrics must not enter\n * the single source of truth a profile owner hand-maintains.\n */\n\n/** One language's share of analyzed source, derived from byte counts. */\nexport interface LanguageBreakdown {\n /** Language name as reported by the source (e.g. `\"TypeScript\"`). */\n name: string;\n /** Total bytes attributed to this language across analyzed repositories. */\n bytes: number;\n /** Share of the analyzed total, 0–100, rounded to one decimal place. */\n percent: number;\n}\n\n/** A single day in a contribution calendar. */\nexport interface ContributionDay {\n /** ISO-8601 calendar date (`YYYY-MM-DD`). */\n date: string;\n /** Contribution count on that day. */\n count: number;\n}\n\n/** Contribution activity over a window (e.g. the trailing year). */\nexport interface ContributionCalendar {\n /** Total contributions across the window. */\n total: number;\n /** Per-day counts, in chronological order. */\n days: ContributionDay[];\n}\n\n/** Coding time decomposed into whole hours/minutes/seconds plus the raw total. */\nexport interface CodingTime {\n totalSeconds: number;\n hours: number;\n minutes: number;\n seconds: number;\n}\n\n/** Coarse activity tier label, highest (`S`) to lowest (`D`). */\nexport type RankTierLabel = 'S' | 'A' | 'B' | 'C' | 'D';\n\n/** A derived activity rank: a tier label plus the 0–100 score it came from. */\nexport interface RankTier {\n tier: RankTierLabel;\n /** Normalized 0–100 activity score the tier was derived from. */\n score: number;\n}\n\n/**\n * A point-in-time snapshot of externally-sourced developer-activity metrics\n * (GitHub languages / contributions, WakaTime coding time, and a derived rank).\n *\n * Every metric field is optional so the snapshot degrades gracefully when a\n * source is unconfigured or temporarily unavailable: the renderer shows what is\n * present and omits the rest. Only {@link lastSyncedAt} is required so staleness\n * is always displayable.\n */\nexport interface ActivitySnapshot {\n /** ISO-8601 timestamp of when this snapshot was produced. */\n lastSyncedAt: string;\n languages?: LanguageBreakdown[];\n contributions?: ContributionCalendar;\n codingTime?: CodingTime;\n rank?: RankTier;\n}\n\n// --- runtime type-guard -----------------------------------------------------\n\nfunction isObject(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null;\n}\n\nfunction isLanguageBreakdown(value: unknown): value is LanguageBreakdown {\n return (\n isObject(value) &&\n typeof value.name === 'string' &&\n typeof value.bytes === 'number' &&\n typeof value.percent === 'number'\n );\n}\n\nfunction isContributionCalendar(value: unknown): value is ContributionCalendar {\n return (\n isObject(value) &&\n typeof value.total === 'number' &&\n Array.isArray(value.days) &&\n value.days.every(\n (d: unknown) => isObject(d) && typeof d.date === 'string' && typeof d.count === 'number',\n )\n );\n}\n\nfunction isCodingTime(value: unknown): value is CodingTime {\n return (\n isObject(value) &&\n typeof value.totalSeconds === 'number' &&\n typeof value.hours === 'number' &&\n typeof value.minutes === 'number' &&\n typeof value.seconds === 'number'\n );\n}\n\nfunction isRankTier(value: unknown): value is RankTier {\n return (\n isObject(value) &&\n typeof value.score === 'number' &&\n (value.tier === 'S' ||\n value.tier === 'A' ||\n value.tier === 'B' ||\n value.tier === 'C' ||\n value.tier === 'D')\n );\n}\n\n/**\n * Validate that an unknown value (e.g. one read back from storage) is a\n * well-formed {@link ActivitySnapshot}. A lightweight runtime guard is\n * sufficient here — the snapshot is machine-written and self-owned, so it does\n * not warrant a full JSON Schema validator like `takuhon.json`. A malformed or\n * truncated snapshot fails the guard and the renderer treats it as absent.\n */\nexport function isActivitySnapshot(value: unknown): value is ActivitySnapshot {\n if (!isObject(value) || typeof value.lastSyncedAt !== 'string') return false;\n if (value.languages !== undefined) {\n if (!Array.isArray(value.languages) || !value.languages.every(isLanguageBreakdown)) {\n return false;\n }\n }\n if (value.contributions !== undefined && !isContributionCalendar(value.contributions)) {\n return false;\n }\n if (value.codingTime !== undefined && !isCodingTime(value.codingTime)) return false;\n if (value.rank !== undefined && !isRankTier(value.rank)) return false;\n return true;\n}\n\n// --- pure transforms --------------------------------------------------------\n\n/**\n * Turn per-language byte counts (as GitHub's `repos/.../languages` reports) into\n * sorted percentage breakdowns. Languages with zero bytes are dropped; the\n * result is sorted by bytes descending, ties broken by name, so the output is\n * deterministic. Percentages are rounded to one decimal place and need not sum\n * to exactly 100. Returns `[]` when there is nothing to attribute.\n */\nexport function computeLanguagePercentages(\n bytesByLanguage: Readonly<Record<string, number>>,\n): LanguageBreakdown[] {\n const entries = Object.entries(bytesByLanguage).filter(([, bytes]) => bytes > 0);\n const total = entries.reduce((sum, [, bytes]) => sum + bytes, 0);\n if (total === 0) return [];\n return entries\n .map(([name, bytes]) => ({ name, bytes, percent: Math.round((bytes / total) * 1000) / 10 }))\n .sort((a, b) => b.bytes - a.bytes || a.name.localeCompare(b.name));\n}\n\n/** Decompose a total number of seconds into whole h/m/s (negatives clamp to 0). */\nexport function formatCodingTime(totalSeconds: number): CodingTime {\n const safe = Math.max(0, Math.floor(totalSeconds));\n return {\n totalSeconds: safe,\n hours: Math.floor(safe / 3600),\n minutes: Math.floor((safe % 3600) / 60),\n seconds: safe % 60,\n };\n}\n\n/** Inputs to {@link deriveRankTier}; any field may be absent. */\nexport interface RankInput {\n /** Contributions in the trailing window (e.g. the past year). */\n contributions?: number;\n /** Total coding time, in seconds. */\n codingSeconds?: number;\n}\n\n/** Contribution count that saturates the contribution sub-score at 100. */\nexport const RANK_FULL_CONTRIBUTIONS = 2000;\n/** Coding hours that saturate the coding-time sub-score at 100. */\nexport const RANK_FULL_CODING_HOURS = 2000;\n/**\n * Inclusive lower bounds for each tier on the 0–100 score (anything below `C`\n * is `D`). These are a deliberately generic, transparent default — not tuned to\n * any individual — and may be revisited.\n */\nexport const RANK_TIER_THRESHOLDS = { S: 80, A: 60, B: 40, C: 20 } as const;\n\nfunction tierForScore(score: number): RankTierLabel {\n if (score >= RANK_TIER_THRESHOLDS.S) return 'S';\n if (score >= RANK_TIER_THRESHOLDS.A) return 'A';\n if (score >= RANK_TIER_THRESHOLDS.B) return 'B';\n if (score >= RANK_TIER_THRESHOLDS.C) return 'C';\n return 'D';\n}\n\n/**\n * Derive a coarse activity {@link RankTier} from the available signals. Each\n * present signal is mapped to a 0–100 sub-score via linear saturation\n * ({@link RANK_FULL_CONTRIBUTIONS} / {@link RANK_FULL_CODING_HOURS} reach 100);\n * the final score is the mean of the present sub-scores, so a profile is not\n * penalized for leaving a source unconfigured. With no signals the score is 0\n * (`D`). The function is deterministic — no clock or randomness — so renders are\n * reproducible.\n */\nexport function deriveRankTier(input: RankInput): RankTier {\n const subScores: number[] = [];\n if (input.contributions !== undefined) {\n const c = Math.max(0, input.contributions);\n subScores.push(100 * Math.min(1, c / RANK_FULL_CONTRIBUTIONS));\n }\n if (input.codingSeconds !== undefined) {\n const hours = Math.max(0, input.codingSeconds) / 3600;\n subScores.push(100 * Math.min(1, hours / RANK_FULL_CODING_HOURS));\n }\n const score =\n subScores.length === 0\n ? 0\n : Math.round(subScores.reduce((sum, s) => sum + s, 0) / subScores.length);\n return { tier: tierForScore(score), score };\n}\n","/**\n * Self-owned inline SVG rendering of an {@link ActivitySnapshot}.\n *\n * The dashboard is drawn from the stored snapshot only — no external badge\n * image, no network access — so a page embedding it keeps a strict\n * `img-src 'self'` Content-Security-Policy. The output is a deterministic pure\n * string: no clock, no randomness, no locale-dependent formatting — the same\n * snapshot always renders the same markup, so both rendering surfaces (the\n * static HTML export and the React profile) and their tests stay in lockstep.\n *\n * Every snapshot-derived string (language names, dates) is XML-escaped before\n * it reaches the markup: language names come from an external API and are\n * treated as untrusted. An empty snapshot (no metric fields) renders to `''`\n * so callers can omit the section with a truthiness check.\n */\n\nimport type { ActivitySnapshot, LanguageBreakdown } from './activity.js';\n\nconst WIDTH = 520;\nconst PAD = 16;\nconst INNER = WIDTH - PAD * 2;\n\nconst TEXT_COLOR = '#1a1a1a';\nconst MUTED_COLOR = '#666666';\nconst ACCENT_COLOR = '#0b5fff';\nconst FONT_FAMILY = 'system-ui,-apple-system,Segoe UI,Roboto,sans-serif';\n\n/** Fixed, order-based palette for the language bar; the last entry is \"Other\". */\nconst LANGUAGE_COLORS = ['#0b5fff', '#7c3aed', '#059669', '#d97706', '#dc2626', '#0891b2'];\nconst OTHER_COLOR = '#9ca3af';\n\n/** Languages shown individually before the remainder is folded into \"Other\". */\nconst MAX_LANGUAGES = 6;\n\n/** Five-step heat scale for the contribution calendar (zero first). */\nconst HEAT_COLORS = ['#ebedf0', '#cce0ff', '#99c2ff', '#4d8aff', '#0b5fff'];\n\n/** Contribution cells: 7 px square on a 9 px pitch, 7 rows (days per column). */\nconst CELL = 7;\nconst CELL_PITCH = 9;\nconst CALENDAR_ROWS = 7;\n/** Most recent days shown — 53 columns fit the card width. */\nconst MAX_CALENDAR_DAYS = 53 * CALENDAR_ROWS;\n\n/** Escape text for use in SVG element content or double-quoted attributes. */\nfunction escapeXml(value: string): string {\n return value\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n\n/** Group an integer's digits with commas, independent of the host locale. */\nfunction groupDigits(value: number): string {\n const digits = String(Math.trunc(Math.abs(value)));\n const grouped = digits.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n return value < 0 ? `-${grouped}` : grouped;\n}\n\n/** Round to at most two decimals without locale formatting. */\nfunction round2(value: number): number {\n return Math.round(value * 100) / 100;\n}\n\ninterface TextOptions {\n size: number;\n fill: string;\n weight?: number;\n anchor?: 'start' | 'middle' | 'end';\n}\n\nfunction text(x: number, y: number, content: string, opts: TextOptions): string {\n const weight = opts.weight !== undefined ? ` font-weight=\"${String(opts.weight)}\"` : '';\n const anchor = opts.anchor !== undefined ? ` text-anchor=\"${opts.anchor}\"` : '';\n return (\n `<text x=\"${String(x)}\" y=\"${String(y)}\" font-family=\"${FONT_FAMILY}\" ` +\n `font-size=\"${String(opts.size)}\" fill=\"${opts.fill}\"${weight}${anchor}>` +\n `${escapeXml(content)}</text>`\n );\n}\n\nfunction caption(x: number, y: number, label: string): string {\n return text(x, y, label, { size: 12, fill: MUTED_COLOR, weight: 600 });\n}\n\nfunction rect(x: number, y: number, w: number, h: number, fill: string, rx = 0): string {\n const corner = rx > 0 ? ` rx=\"${String(rx)}\"` : '';\n return (\n `<rect x=\"${String(round2(x))}\" y=\"${String(y)}\" width=\"${String(round2(w))}\" ` +\n `height=\"${String(h)}\" fill=\"${fill}\"${corner}/>`\n );\n}\n\ninterface LanguageSegment {\n name: string;\n percent: number;\n color: string;\n}\n\n/** Top languages with their palette colors; the tail is folded into \"Other\". */\nfunction languageSegments(languages: readonly LanguageBreakdown[]): LanguageSegment[] {\n const segments = languages.slice(0, MAX_LANGUAGES).map((l, i) => ({\n name: l.name,\n percent: l.percent,\n color: LANGUAGE_COLORS[i] ?? OTHER_COLOR,\n }));\n const rest = languages.slice(MAX_LANGUAGES);\n if (rest.length > 0) {\n const percent = round2(rest.reduce((sum, l) => sum + l.percent, 0));\n segments.push({ name: 'Other', percent, color: OTHER_COLOR });\n }\n return segments.filter((s) => s.percent > 0);\n}\n\n/** Map a day's count to a heat level: 0 stays 0, the rest scale against `max`. */\nfunction heatLevel(count: number, max: number): number {\n if (count <= 0) return 0;\n return Math.min(4, Math.max(1, Math.ceil((count / max) * 4)));\n}\n\n/**\n * Render the activity snapshot as a self-contained `<svg>` string, or `''`\n * when the snapshot carries no metric data (so callers can omit the section).\n * Sections render independently — whatever the snapshot holds is shown, the\n * rest is left out — and `lastSyncedAt`'s date is always stamped in the footer\n * so staleness stays visible.\n */\nexport function renderActivitySvg(snapshot: ActivitySnapshot): string {\n const hasLanguages = snapshot.languages !== undefined && snapshot.languages.length > 0;\n const hasContributions =\n snapshot.contributions !== undefined && snapshot.contributions.days.length > 0;\n const hasCodingTime = snapshot.codingTime !== undefined;\n const hasRank = snapshot.rank !== undefined;\n if (!hasLanguages && !hasContributions && !hasCodingTime && !hasRank) return '';\n\n const parts: string[] = [];\n let y = PAD;\n\n if (hasLanguages && snapshot.languages) {\n const segments = languageSegments(snapshot.languages);\n const total = segments.reduce((sum, s) => sum + s.percent, 0);\n\n parts.push(caption(PAD, y + 11, 'Languages'));\n y += 22;\n\n let x = PAD;\n for (const segment of segments) {\n const w = (segment.percent / total) * INNER;\n parts.push(rect(x, y, w, 12, segment.color));\n x += w;\n }\n y += 22;\n\n const columnWidth = INNER / 2;\n segments.forEach((segment, i) => {\n const cx = PAD + (i % 2) * columnWidth;\n const cy = y + Math.floor(i / 2) * 18;\n parts.push(rect(cx, cy, 10, 10, segment.color, 2));\n parts.push(\n text(cx + 16, cy + 9, `${segment.name} ${String(segment.percent)}%`, {\n size: 12,\n fill: TEXT_COLOR,\n }),\n );\n });\n y += Math.ceil(segments.length / 2) * 18 + 10;\n }\n\n if (hasContributions && snapshot.contributions) {\n const days = snapshot.contributions.days.slice(-MAX_CALENDAR_DAYS);\n const max = days.reduce((m, d) => Math.max(m, d.count), 1);\n\n parts.push(\n caption(PAD, y + 11, `Contributions · ${groupDigits(snapshot.contributions.total)}`),\n );\n y += 22;\n\n days.forEach((day, i) => {\n const column = Math.floor(i / CALENDAR_ROWS);\n const row = i % CALENDAR_ROWS;\n const fill = HEAT_COLORS[heatLevel(day.count, max)] ?? HEAT_COLORS[0]!;\n parts.push(rect(PAD + column * CELL_PITCH, y + row * CELL_PITCH, CELL, CELL, fill, 1.5));\n });\n y += CALENDAR_ROWS * CELL_PITCH - (CELL_PITCH - CELL) + 12;\n }\n\n if (hasCodingTime || hasRank) {\n const rankX = PAD + INNER - 120;\n if (hasCodingTime && snapshot.codingTime) {\n const t = snapshot.codingTime;\n parts.push(caption(PAD, y + 11, 'Coding time'));\n parts.push(\n text(PAD, y + 38, `${groupDigits(t.hours)}h ${String(t.minutes)}m`, {\n size: 22,\n fill: TEXT_COLOR,\n weight: 700,\n }),\n );\n }\n if (hasRank && snapshot.rank) {\n const rank = snapshot.rank;\n parts.push(caption(rankX, y + 11, 'Rank'));\n const centerY = y + 32;\n parts.push(\n `<circle cx=\"${String(rankX + 14)}\" cy=\"${String(centerY)}\" r=\"14\" fill=\"${ACCENT_COLOR}\"/>`,\n );\n parts.push(\n `<text x=\"${String(rankX + 14)}\" y=\"${String(centerY)}\" font-family=\"${FONT_FAMILY}\" ` +\n `font-size=\"14\" font-weight=\"700\" fill=\"#ffffff\" text-anchor=\"middle\" ` +\n `dominant-baseline=\"central\">${escapeXml(rank.tier)}</text>`,\n );\n parts.push(\n text(rankX + 36, centerY + 4, `score ${String(rank.score)}`, {\n size: 12,\n fill: MUTED_COLOR,\n }),\n );\n }\n y += 50;\n }\n\n // `lastSyncedAt` is an ISO-8601 timestamp; the date prefix is shown verbatim\n // (no Date parsing, no timezone math) so rendering stays deterministic.\n parts.push(\n text(WIDTH - PAD, y + 11, `Last synced ${snapshot.lastSyncedAt.slice(0, 10)}`, {\n size: 11,\n fill: MUTED_COLOR,\n anchor: 'end',\n }),\n );\n y += 22;\n\n const height = y + PAD - 12;\n return (\n `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${String(WIDTH)}\" height=\"${String(height)}\" ` +\n `viewBox=\"0 0 ${String(WIDTH)} ${String(height)}\" role=\"img\" aria-label=\"Developer activity\">` +\n `<title>Developer activity</title>${parts.join('')}</svg>`\n );\n}\n","/**\n * Image-asset helpers for uploaded media (avatars, project images): magic-byte\n * type detection, header-only dimension / frame reading, and metadata stripping\n * (EXIF / IPTC / XMP / color profile) for the four MIME types takuhon accepts.\n *\n * Every function parses only the container structure — it never decodes pixel\n * data — so the module is tiny, dependency-free, and runs identically on\n * Cloudflare Workers, Node, and in the browser. This is the deliberate\n * \"no codec, no re-encode\" approach: `security.md` §4 requires metadata removal\n * for privacy (EXIF GPS / device data on avatars) but leaves resizing to the UI\n * (§4.3 \"aspect ratio cropped UI-side\"), so no image codec is needed.\n *\n * AVIF is intentionally not handled yet — its ISO-BMFF metadata layout is more\n * involved — so {@link detectImageMime} returns `null` for it and uploads of it\n * are rejected until a later phase adds support.\n *\n * The functions assume well-formed input only as far as security requires:\n * {@link detectImageMime} authenticates the type from the leading bytes (so a\n * spoofed `Content-Type` cannot smuggle, say, an SVG), {@link readImageInfo}\n * returns `null` when it cannot find the dimensions, and\n * {@link stripImageMetadata} preserves the pixel data while dropping metadata\n * segments. A truncated or malformed file is the uploader's problem — the bytes\n * are stored and served verbatim, never decoded server-side.\n */\n\n/** MIME types accepted for uploaded images (`security.md` §4.1, minus AVIF). */\nexport const ACCEPTED_IMAGE_MIME_TYPES = [\n 'image/jpeg',\n 'image/png',\n 'image/webp',\n 'image/gif',\n] as const;\n\nexport type AcceptedImageMime = (typeof ACCEPTED_IMAGE_MIME_TYPES)[number];\n\n/** Maximum accepted upload size, in bytes (`security.md` §4.3). */\nexport const MAX_IMAGE_BYTES = 5 * 1024 * 1024;\n\n/** Maximum accepted width or height, in pixels (`security.md` §4.3). */\nexport const MAX_IMAGE_DIMENSION = 4096;\n\n/** Maximum accepted animation frame count (`security.md` §4.4). */\nexport const MAX_IMAGE_FRAMES = 100;\n\n/** Canonical file extension per accepted MIME, used in object keys. */\nexport const IMAGE_EXTENSIONS: Record<AcceptedImageMime, string> = {\n 'image/jpeg': 'jpg',\n 'image/png': 'png',\n 'image/webp': 'webp',\n 'image/gif': 'gif',\n};\n\n/** Dimensions and animation frame count read from an image's container header. */\nexport interface ImageInfo {\n width: number;\n height: number;\n /** 1 for a still image; the frame count for an animated GIF / WebP / APNG. */\n frames: number;\n}\n\n// --- byte readers -----------------------------------------------------------\n\nfunction u16be(b: Uint8Array, o: number): number {\n return (b[o]! << 8) | b[o + 1]!;\n}\n\nfunction u32be(b: Uint8Array, o: number): number {\n // `>>> 0` keeps the result an unsigned 32-bit integer.\n return ((b[o]! << 24) | (b[o + 1]! << 16) | (b[o + 2]! << 8) | b[o + 3]!) >>> 0;\n}\n\nfunction u16le(b: Uint8Array, o: number): number {\n return b[o]! | (b[o + 1]! << 8);\n}\n\nfunction u24le(b: Uint8Array, o: number): number {\n return b[o]! | (b[o + 1]! << 8) | (b[o + 2]! << 16);\n}\n\nfunction u32le(b: Uint8Array, o: number): number {\n return (b[o]! | (b[o + 1]! << 8) | (b[o + 2]! << 16) | (b[o + 3]! << 24)) >>> 0;\n}\n\n/** Read `len` bytes at `o` as ASCII. */\nfunction ascii(b: Uint8Array, o: number, len: number): string {\n let s = '';\n for (let i = 0; i < len; i++) s += String.fromCharCode(b[o + i]!);\n return s;\n}\n\nfunction startsWith(b: Uint8Array, sig: readonly number[]): boolean {\n if (b.length < sig.length) return false;\n for (let i = 0; i < sig.length; i++) if (b[i] !== sig[i]) return false;\n return true;\n}\n\nfunction concat(parts: readonly Uint8Array[]): Uint8Array {\n let total = 0;\n for (const p of parts) total += p.length;\n const out = new Uint8Array(total);\n let o = 0;\n for (const p of parts) {\n out.set(p, o);\n o += p.length;\n }\n return out;\n}\n\n// --- magic-byte detection ---------------------------------------------------\n\nconst JPEG_SIG = [0xff, 0xd8, 0xff];\nconst PNG_SIG = [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a];\n\nfunction isJpeg(b: Uint8Array): boolean {\n return startsWith(b, JPEG_SIG);\n}\n\nfunction isPng(b: Uint8Array): boolean {\n return startsWith(b, PNG_SIG);\n}\n\nfunction isGif(b: Uint8Array): boolean {\n // \"GIF87a\" or \"GIF89a\".\n return (\n b.length >= 6 && ascii(b, 0, 4) === 'GIF8' && (b[4] === 0x37 || b[4] === 0x39) && b[5] === 0x61\n );\n}\n\nfunction isWebp(b: Uint8Array): boolean {\n return b.length >= 12 && ascii(b, 0, 4) === 'RIFF' && ascii(b, 8, 4) === 'WEBP';\n}\n\n/**\n * Identify an accepted image type from its leading bytes, independent of any\n * declared `Content-Type` (`security.md` §4.2). Returns `null` for unrecognized\n * or unsupported (e.g. AVIF, SVG) input.\n */\nexport function detectImageMime(bytes: Uint8Array): AcceptedImageMime | null {\n if (isJpeg(bytes)) return 'image/jpeg';\n if (isPng(bytes)) return 'image/png';\n if (isGif(bytes)) return 'image/gif';\n if (isWebp(bytes)) return 'image/webp';\n return null;\n}\n\n// --- dimension / frame reading ----------------------------------------------\n\n/** True for a JPEG Start-Of-Frame marker (SOF0–SOF15, excluding DHT/JPG/DAC). */\nfunction isJpegSof(marker: number): boolean {\n return marker >= 0xc0 && marker <= 0xcf && marker !== 0xc4 && marker !== 0xc8 && marker !== 0xcc;\n}\n\nfunction readJpegInfo(b: Uint8Array): ImageInfo | null {\n let i = 2; // skip SOI\n while (i + 1 < b.length) {\n if (b[i] !== 0xff) {\n i++;\n continue;\n }\n let marker = b[i + 1]!;\n // Collapse marker fill bytes (a run of 0xFF).\n while (marker === 0xff && i + 2 < b.length) {\n i++;\n marker = b[i + 1]!;\n }\n i += 2;\n // Standalone markers (no length): SOI, EOI, RSTn, TEM.\n if (\n marker === 0xd8 ||\n marker === 0xd9 ||\n (marker >= 0xd0 && marker <= 0xd7) ||\n marker === 0x01\n ) {\n continue;\n }\n if (marker === 0xda) break; // SOS — entropy-coded data follows\n if (i + 1 >= b.length) break;\n const len = u16be(b, i);\n if (isJpegSof(marker)) {\n // [length(2)][precision(1)][height(2)][width(2)]\n if (i + 6 >= b.length) return null;\n return { height: u16be(b, i + 3), width: u16be(b, i + 5), frames: 1 };\n }\n i += len;\n }\n return null;\n}\n\nfunction readPngInfo(b: Uint8Array): ImageInfo | null {\n // IHDR is the first chunk: [len(4)][\"IHDR\"(4)][width(4)][height(4)]…\n if (b.length < 24) return null;\n const width = u32be(b, 16);\n const height = u32be(b, 20);\n let frames = 1;\n // APNG declares its frame count in an acTL chunk before the first IDAT.\n let o = 8;\n while (o + 12 <= b.length) {\n const len = u32be(b, o);\n const type = ascii(b, o + 4, 4);\n if (type === 'acTL') {\n frames = u32be(b, o + 8);\n break;\n }\n if (type === 'IDAT' || type === 'IEND') break;\n o += 12 + len;\n }\n return { width, height, frames };\n}\n\n/** Skip a run of GIF sub-blocks (each `[len][len bytes]`, terminated by 0x00). */\nfunction skipGifSubBlocks(b: Uint8Array, o: number): number {\n while (o < b.length) {\n const len = b[o]!;\n o += 1;\n if (len === 0) break;\n o += len;\n }\n return o;\n}\n\nfunction readGifInfo(b: Uint8Array): ImageInfo | null {\n if (b.length < 13) return null;\n const width = u16le(b, 6);\n const height = u16le(b, 8);\n // Logical Screen Descriptor packed field at offset 10; bit 7 = global color\n // table present, low 3 bits = its size exponent.\n const packed = b[10]!;\n let o = 13;\n if (packed & 0x80) o += 3 * (1 << ((packed & 0x07) + 1)); // skip global color table\n let frames = 0;\n while (o < b.length) {\n const block = b[o]!;\n if (block === 0x3b) break; // trailer\n if (block === 0x21) {\n // Extension: introducer, label, then sub-blocks.\n o = skipGifSubBlocks(b, o + 2);\n } else if (block === 0x2c) {\n // Image Descriptor: 0x2C + 9 bytes; optional local color table; LZW min\n // code size; image data sub-blocks.\n frames += 1;\n const localPacked = b[o + 9]!;\n o += 10;\n if (localPacked & 0x80) o += 3 * (1 << ((localPacked & 0x07) + 1));\n o += 1; // LZW minimum code size\n o = skipGifSubBlocks(b, o);\n } else {\n break; // unexpected byte — stop defensively\n }\n }\n return { width, height, frames: Math.max(frames, 1) };\n}\n\nfunction readWebpInfo(b: Uint8Array): ImageInfo | null {\n if (b.length < 16) return null;\n const format = ascii(b, 12, 4); // first chunk's FourCC\n if (format === 'VP8X') {\n // Extended: flags(1) + reserved(3) + canvasW-1(3 LE) + canvasH-1(3 LE).\n const width = u24le(b, 24) + 1;\n const height = u24le(b, 27) + 1;\n const animated = (b[20]! & 0x02) !== 0; // ANIM flag\n let frames = 1;\n if (animated) {\n frames = 0;\n let o = 12;\n while (o + 8 <= b.length) {\n const fourcc = ascii(b, o, 4);\n const size = u32le(b, o + 4);\n if (fourcc === 'ANMF') frames += 1;\n o += 8 + size + (size & 1); // chunks are padded to even length\n }\n frames = Math.max(frames, 1);\n }\n return { width, height, frames };\n }\n if (format === 'VP8 ') {\n // Lossy: after the chunk header, frame tag(3) + start code 9D 01 2A, then\n // 14-bit width and height (little-endian) at data+6 / data+8.\n const width = u16le(b, 26) & 0x3fff;\n const height = u16le(b, 28) & 0x3fff;\n return { width, height, frames: 1 };\n }\n if (format === 'VP8L') {\n // Lossless: signature 0x2F at data+0, then 32 bits LE holding\n // (width-1):14, (height-1):14, …\n const bits = u32le(b, 21);\n const width = (bits & 0x3fff) + 1;\n const height = ((bits >> 14) & 0x3fff) + 1;\n return { width, height, frames: 1 };\n }\n return null;\n}\n\n/**\n * Read an image's dimensions and animation frame count from its container\n * header alone (no pixel decode). Returns `null` when the structure cannot be\n * parsed. `mime` must come from {@link detectImageMime}.\n */\nexport function readImageInfo(bytes: Uint8Array, mime: AcceptedImageMime): ImageInfo | null {\n switch (mime) {\n case 'image/jpeg':\n return readJpegInfo(bytes);\n case 'image/png':\n return readPngInfo(bytes);\n case 'image/gif':\n return readGifInfo(bytes);\n case 'image/webp':\n return readWebpInfo(bytes);\n }\n}\n\n// --- metadata stripping -----------------------------------------------------\n\nfunction stripJpegMetadata(b: Uint8Array): Uint8Array {\n const out: Uint8Array[] = [b.subarray(0, 2)]; // SOI\n let i = 2;\n while (i + 1 < b.length) {\n if (b[i] !== 0xff) break;\n let marker = b[i + 1]!;\n let markerStart = i;\n while (marker === 0xff && i + 2 < b.length) {\n i++;\n marker = b[i + 1]!;\n }\n // Preserve any fill bytes that preceded the marker.\n if (i !== markerStart) out.push(b.subarray(markerStart, i));\n markerStart = i;\n i += 2;\n if (marker === 0xd9 || (marker >= 0xd0 && marker <= 0xd7) || marker === 0x01) {\n out.push(b.subarray(markerStart, i)); // standalone marker, keep\n continue;\n }\n if (marker === 0xda) {\n // SOS: copy the marker and all remaining entropy-coded data + EOI.\n out.push(b.subarray(markerStart));\n break;\n }\n if (i + 1 >= b.length) {\n out.push(b.subarray(markerStart));\n break;\n }\n const len = u16be(b, i);\n const segmentEnd = i + len;\n // Drop EXIF/XMP (APP1), ICC color profile (APP2), IPTC/Photoshop (APP13),\n // and comments (COM). Keep APP0 (JFIF) and everything else.\n const isMetadata = marker === 0xe1 || marker === 0xe2 || marker === 0xed || marker === 0xfe;\n if (!isMetadata) out.push(b.subarray(markerStart, segmentEnd));\n i = segmentEnd;\n }\n return concat(out);\n}\n\nconst PNG_METADATA_CHUNKS = new Set(['eXIf', 'tEXt', 'iTXt', 'zTXt', 'tIME']);\n\nfunction stripPngMetadata(b: Uint8Array): Uint8Array {\n const out: Uint8Array[] = [b.subarray(0, 8)]; // signature\n let o = 8;\n while (o + 12 <= b.length) {\n const len = u32be(b, o);\n const type = ascii(b, o + 4, 4);\n const end = o + 12 + len; // len + type(4) + data + CRC(4)\n if (end > b.length) {\n out.push(b.subarray(o)); // truncated — copy the rest verbatim\n break;\n }\n if (!PNG_METADATA_CHUNKS.has(type)) out.push(b.subarray(o, end));\n o = end;\n }\n return concat(out);\n}\n\nfunction stripGifMetadata(b: Uint8Array): Uint8Array {\n if (b.length < 13) return b;\n const packed = b[10]!;\n let headerEnd = 13;\n if (packed & 0x80) headerEnd += 3 * (1 << ((packed & 0x07) + 1));\n const out: Uint8Array[] = [b.subarray(0, headerEnd)];\n let o = headerEnd;\n while (o < b.length) {\n const block = b[o]!;\n if (block === 0x3b) {\n out.push(b.subarray(o, o + 1)); // trailer\n break;\n }\n if (block === 0x21) {\n const label = b[o + 1]!;\n const blockEnd = skipGifSubBlocks(b, o + 2);\n // Drop Comment (0xFE) and Application (0xFF) extensions — the latter\n // carries XMP. Keep Graphic Control (0xF9) and Plain Text (0x01).\n const isMetadata = label === 0xfe || label === 0xff;\n if (!isMetadata) out.push(b.subarray(o, blockEnd));\n o = blockEnd;\n } else if (block === 0x2c) {\n const localPacked = b[o + 9]!;\n let dataStart = o + 10;\n if (localPacked & 0x80) dataStart += 3 * (1 << ((localPacked & 0x07) + 1));\n dataStart += 1; // LZW minimum code size\n const blockEnd = skipGifSubBlocks(b, dataStart);\n out.push(b.subarray(o, blockEnd)); // image data, keep\n o = blockEnd;\n } else {\n out.push(b.subarray(o)); // unexpected — copy the rest verbatim\n break;\n }\n }\n return concat(out);\n}\n\nconst WEBP_METADATA_CHUNKS = new Set(['EXIF', 'XMP ', 'ICCP']);\n\nfunction stripWebpMetadata(b: Uint8Array): Uint8Array {\n if (b.length < 12) return b;\n const chunks: Uint8Array[] = [];\n let o = 12;\n while (o + 8 <= b.length) {\n const fourcc = ascii(b, o, 4);\n const size = u32le(b, o + 4);\n const padded = size + (size & 1);\n const end = o + 8 + padded;\n if (end > b.length) {\n chunks.push(b.subarray(o)); // truncated — copy verbatim\n break;\n }\n if (!WEBP_METADATA_CHUNKS.has(fourcc)) chunks.push(b.subarray(o, end));\n o = end;\n }\n const body = concat(chunks);\n // Rebuild the RIFF header with the new body length, and clear the EXIF/XMP/\n // ICCP flag bits in any VP8X chunk so the header matches the dropped chunks.\n const out = new Uint8Array(12 + body.length);\n out.set(b.subarray(0, 12), 0);\n out.set(body, 12);\n out[4] = (4 + body.length) & 0xff;\n out[5] = ((4 + body.length) >> 8) & 0xff;\n out[6] = ((4 + body.length) >> 16) & 0xff;\n out[7] = ((4 + body.length) >> 24) & 0xff;\n if (ascii(out, 12, 4) === 'VP8X') {\n // VP8X flags byte at offset 20: clear ICCP (bit5), EXIF (bit3), XMP (bit2).\n out[20] = out[20]! & ~0b0010_1100;\n }\n return out;\n}\n\n/**\n * Remove metadata (EXIF / IPTC / XMP / embedded color profile / comments) from\n * an image while preserving its pixel data, by editing only the container\n * structure (`security.md` §4.5). `mime` must come from {@link detectImageMime}.\n * Returns the original bytes unchanged when there is no metadata to remove.\n */\nexport function stripImageMetadata(bytes: Uint8Array, mime: AcceptedImageMime): Uint8Array {\n switch (mime) {\n case 'image/jpeg':\n return stripJpegMetadata(bytes);\n case 'image/png':\n return stripPngMetadata(bytes);\n case 'image/gif':\n return stripGifMetadata(bytes);\n case 'image/webp':\n return stripWebpMetadata(bytes);\n }\n}\n","/**\n * @takuhon/core — canonical JSON Schema, hand-written TypeScript types,\n * Ajv-backed validation, document normalization, and locale resolution for\n * takuhon profile data.\n *\n * Public surface (Phase 1):\n * - {@link schema}: the JSON Schema 2020-12 contract bundled with this build.\n * - {@link SCHEMA_VERSION}: the version of that schema (matches the `$id`).\n * - {@link validate} / {@link ValidationResult} / {@link ValidationError} /\n * {@link SUPPORTED_SCHEMA_VERSIONS}: Result-style validator backed by Ajv.\n * - {@link normalize} / {@link NormalizedTakuhon}: canonicalize a validated\n * document (sort lists by `order`, drop blank localized entries).\n * - {@link resolveLocale} / {@link LocalizedTakuhon}: collapse a multi-locale\n * document to a single requested locale with BCP-47 regional fallback.\n * - {@link generateJsonLd} / {@link generatePersonJsonLd} /\n * {@link generateProfilePageJsonLd}: emit Schema.org JSON-LD\n * (`ProfilePage` wrapping `Person`) from a locale-resolved document.\n * - {@link TakuhonStorage} / {@link TakuhonAssetStorage}: persistence contracts\n * for adapters (KV / R2 / filesystem / SQLite / …), with the\n * {@link StorageError} / {@link NotFoundError} / {@link ConflictError}\n * exception family for optimistic-locking and not-found signalling.\n * - {@link exportTakuhon} / {@link importTakuhon} / {@link ExportOptions} /\n * {@link ExportedTakuhon} / {@link ImportError}: roundtrip-stable\n * serialisation for transport (file, API response, …).\n * - {@link migrateTakuhon} / {@link Migration} / {@link migrations} /\n * {@link MigrationError}: forward-only migration registry, chaining\n * `0.1.0 → 0.2.0 → 0.3.0 → 0.4.0`.\n * - Domain types: {@link Takuhon} and its constituent shapes (`Profile`,\n * `Settings`, `Career`, `Project`, `Link` discriminated union, etc.).\n */\n\nexport { schema } from './schema.js';\nexport type { Schema } from './schema.js';\n\nexport { SUPPORTED_SCHEMA_VERSIONS, validate } from './validate.js';\nexport type { ValidationError, ValidationResult } from './validate.js';\n\nexport { normalize } from './normalize.js';\nexport { resolveLocale } from './resolve-locale.js';\nexport { generateJsonLd, generatePersonJsonLd, generateProfilePageJsonLd } from './jsonld.js';\n\nexport { ImportError, exportTakuhon, importTakuhon } from './export.js';\nexport type { ExportOptions, ExportedTakuhon } from './export.js';\n\nexport { applyPublicPrivacyFilter } from './privacy-filter.js';\n\nexport { MigrationError, migrateTakuhon } from './migrate.js';\nexport { migrations } from './migrations/index.js';\nexport type { Migration } from './migrations/index.js';\n\nexport { ConflictError, NotFoundError, StorageError } from './storage-interface.js';\nexport type {\n ActivityStorage,\n AssetOptions,\n AssetRecord,\n TakuhonAssetStorage,\n TakuhonStorage,\n} from './storage-interface.js';\n\nexport {\n computeLanguagePercentages,\n deriveRankTier,\n formatCodingTime,\n isActivitySnapshot,\n RANK_FULL_CODING_HOURS,\n RANK_FULL_CONTRIBUTIONS,\n RANK_TIER_THRESHOLDS,\n} from './activity.js';\nexport type {\n ActivitySnapshot,\n CodingTime,\n ContributionCalendar,\n ContributionDay,\n LanguageBreakdown,\n RankInput,\n RankTier,\n RankTierLabel,\n} from './activity.js';\nexport { renderActivitySvg } from './activity-svg.js';\n\nexport {\n ACCEPTED_IMAGE_MIME_TYPES,\n detectImageMime,\n IMAGE_EXTENSIONS,\n MAX_IMAGE_BYTES,\n MAX_IMAGE_DIMENSION,\n MAX_IMAGE_FRAMES,\n readImageInfo,\n stripImageMetadata,\n} from './image.js';\nexport type { AcceptedImageMime, ImageInfo } from './image.js';\n\nexport type {\n ActivitySettings,\n Address,\n Avatar,\n Career,\n Certification,\n Contact,\n ContentLicense,\n ContentLicenseAttribution,\n Course,\n Education,\n Honor,\n Iso3166Alpha2,\n IsoDateTime,\n Language,\n LanguageProficiency,\n Link,\n LinkBuiltin,\n LinkCustom,\n LinkType,\n LocaleTag,\n LocalizedAddress,\n LocalizedAvatar,\n LocalizedBody,\n LocalizedCareer,\n LocalizedCertification,\n LocalizedCourse,\n LocalizedEducation,\n LocalizedHonor,\n LocalizedLanguage,\n LocalizedLink,\n LocalizedLinkBuiltin,\n LocalizedLinkCustom,\n LocalizedMembership,\n LocalizedPatent,\n LocalizedProfile,\n LocalizedProject,\n LocalizedPublication,\n LocalizedRecommendation,\n LocalizedRecommendationAuthor,\n LocalizedTakuhon,\n LocalizedTestScore,\n LocalizedTitle,\n LocalizedVolunteering,\n Membership,\n Meta,\n MetaPrivacy,\n NormalizedTakuhon,\n Patent,\n PatentStatus,\n Profile,\n Project,\n Publication,\n Recommendation,\n RecommendationAuthor,\n Settings,\n Skill,\n Slug,\n Takuhon,\n TestScore,\n Volunteering,\n YearMonth,\n} from './types.js';\n\n/**\n * Version of the takuhon schema bundled with this build of `@takuhon/core`.\n * A takuhon profile document's `schemaVersion` field must be migrate-compatible\n * with this version. See operational-lifecycle docs for the migration policy.\n */\nexport const SCHEMA_VERSION = '0.5.0';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,aAAwB,WAAW,KAAW;AAC5C,YAAM,MAAM,IAAI;AAChB,UAAI,SAAS;AACb,UAAI,MAAM;AACV,UAAI;AACJ,aAAO,MAAM,KAAK;AAChB;AACA,gBAAQ,IAAI,WAAW,KAAK;AAC5B,YAAI,SAAS,SAAU,SAAS,SAAU,MAAM,KAAK;AAEnD,kBAAQ,IAAI,WAAW,GAAG;AAC1B,eAAK,QAAQ,WAAY;AAAQ;QACnC;MACF;AACA,aAAO;IACT;AAfA,YAAA,UAAA;AAiBA,eAAW,OAAO;;;;;;;;;;ACkBlB,aAAS,OACPA,WACA,SAA8B;AAE9B,aAAO,EAAC,UAAAA,WAAU,QAAO;IAC3B;AAEa,YAAA,cAA8B;;MAEzC,MAAM,OAAO,MAAM,WAAW;;MAE9B,MAAM,OAAO,QAAQ,IAAI,GAAG,WAAW;MACvC,aAAa,OAAO,YAAY,IAAI,GAAG,eAAe;MACtD,YAAY,OAAO,QAAO,GAAI,cAAc;MAC5C,iBAAiB,OAAO,YAAW,GAAI,kBAAkB;;MAEzD,UAAU;MACV;MACA,iBACE;;MAEF,gBACE;;;MAGF,KAAK;MACL,OACE;MACF,UACE;;MAEF,MAAM;MACN,MAAM;MACN;;MAEA,MAAM;;;MAGN,gBAAgB;MAChB,6BAA6B;;MAE7B,yBAAyB;;;MAGzB;;MAEA,OAAO,EAAC,MAAM,UAAU,UAAU,cAAa;;MAE/C,OAAO,EAAC,MAAM,UAAU,UAAU,cAAa;;MAE/C,OAAO,EAAC,MAAM,UAAU,UAAU,eAAc;;MAEhD,QAAQ,EAAC,MAAM,UAAU,UAAU,eAAc;;MAEjD,UAAU;;MAEV,QAAQ;;AAGG,YAAA,cAA8B;MACzC,GAAG,QAAA;MACH,MAAM,OAAO,8BAA8B,WAAW;MACtD,MAAM,OACJ,8EACA,WAAW;MAEb,aAAa,OACX,uGACA,eAAe;MAEjB,YAAY,OACV,+EACA,cAAc;MAEhB,iBAAiB,OACf,4GACA,kBAAkB;;MAGpB,KAAK;MACL,iBAAiB;;;;MAIjB,OACE;;AAGS,YAAA,cAAc,OAAO,KAAK,QAAA,WAAW;AAElD,aAAS,WAAW,MAAY;AAE9B,aAAO,OAAO,MAAM,MAAM,OAAO,QAAQ,KAAK,OAAO,QAAQ;IAC/D;AAEA,QAAM,OAAO;AACb,QAAM,OAAO,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE;AAE/D,aAAS,KAAK,KAAW;AAEvB,YAAM,UAA2B,KAAK,KAAK,GAAG;AAC9C,UAAI,CAAC;AAAS,eAAO;AACrB,YAAM,OAAe,CAAC,QAAQ,CAAC;AAC/B,YAAM,QAAgB,CAAC,QAAQ,CAAC;AAChC,YAAM,MAAc,CAAC,QAAQ,CAAC;AAC9B,aACE,SAAS,KACT,SAAS,MACT,OAAO,KACP,QAAQ,UAAU,KAAK,WAAW,IAAI,IAAI,KAAK,KAAK,KAAK;IAE7D;AAEA,aAAS,YAAY,IAAY,IAAU;AACzC,UAAI,EAAE,MAAM;AAAK,eAAO;AACxB,UAAI,KAAK;AAAI,eAAO;AACpB,UAAI,KAAK;AAAI,eAAO;AACpB,aAAO;IACT;AAEA,QAAM,OAAO;AAEb,aAAS,QAAQ,gBAAwB;AACvC,aAAO,SAAS,KAAK,KAAW;AAC9B,cAAM,UAA2B,KAAK,KAAK,GAAG;AAC9C,YAAI,CAAC;AAAS,iBAAO;AACrB,cAAM,KAAa,CAAC,QAAQ,CAAC;AAC7B,cAAM,MAAc,CAAC,QAAQ,CAAC;AAC9B,cAAM,MAAc,CAAC,QAAQ,CAAC;AAC9B,cAAM,KAAyB,QAAQ,CAAC;AACxC,cAAM,SAAiB,QAAQ,CAAC,MAAM,MAAM,KAAK;AACjD,cAAM,MAAc,EAAE,QAAQ,CAAC,KAAK;AACpC,cAAM,MAAc,EAAE,QAAQ,CAAC,KAAK;AACpC,YAAI,MAAM,MAAM,MAAM,MAAO,kBAAkB,CAAC;AAAK,iBAAO;AAC5D,YAAI,MAAM,MAAM,OAAO,MAAM,MAAM;AAAI,iBAAO;AAE9C,cAAM,SAAS,MAAM,MAAM;AAC3B,cAAM,QAAQ,KAAK,MAAM,UAAU,SAAS,IAAI,IAAI;AACpD,gBAAQ,UAAU,MAAM,UAAU,QAAQ,WAAW,MAAM,WAAW,OAAO,MAAM;MACrF;IACF;AAEA,aAAS,YAAY,IAAY,IAAU;AACzC,UAAI,EAAE,MAAM;AAAK,eAAO;AACxB,YAAM,MAAK,oBAAI,KAAK,gBAAgB,EAAE,GAAE,QAAO;AAC/C,YAAM,MAAK,oBAAI,KAAK,gBAAgB,EAAE,GAAE,QAAO;AAC/C,UAAI,EAAE,MAAM;AAAK,eAAO;AACxB,aAAO,KAAK;IACd;AAEA,aAAS,eAAe,IAAY,IAAU;AAC5C,UAAI,EAAE,MAAM;AAAK,eAAO;AACxB,YAAM,KAAK,KAAK,KAAK,EAAE;AACvB,YAAM,KAAK,KAAK,KAAK,EAAE;AACvB,UAAI,EAAE,MAAM;AAAK,eAAO;AACxB,WAAK,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC;AACzB,WAAK,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC;AACzB,UAAI,KAAK;AAAI,eAAO;AACpB,UAAI,KAAK;AAAI,eAAO;AACpB,aAAO;IACT;AAEA,QAAM,sBAAsB;AAC5B,aAAS,YAAY,gBAAwB;AAC3C,YAAM,OAAO,QAAQ,cAAc;AAEnC,aAAO,SAAS,UAAU,KAAW;AAEnC,cAAM,WAAqB,IAAI,MAAM,mBAAmB;AACxD,eAAO,SAAS,WAAW,KAAK,KAAK,SAAS,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;MACvE;IACF;AAEA,aAAS,gBAAgB,KAAa,KAAW;AAC/C,UAAI,EAAE,OAAO;AAAM,eAAO;AAC1B,YAAM,KAAK,IAAI,KAAK,GAAG,EAAE,QAAO;AAChC,YAAM,KAAK,IAAI,KAAK,GAAG,EAAE,QAAO;AAChC,UAAI,EAAE,MAAM;AAAK,eAAO;AACxB,aAAO,KAAK;IACd;AAEA,aAAS,mBAAmB,KAAa,KAAW;AAClD,UAAI,EAAE,OAAO;AAAM,eAAO;AAC1B,YAAM,CAAC,IAAI,EAAE,IAAI,IAAI,MAAM,mBAAmB;AAC9C,YAAM,CAAC,IAAI,EAAE,IAAI,IAAI,MAAM,mBAAmB;AAC9C,YAAM,MAAM,YAAY,IAAI,EAAE;AAC9B,UAAI,QAAQ;AAAW,eAAO;AAC9B,aAAO,OAAO,YAAY,IAAI,EAAE;IAClC;AAEA,QAAM,mBAAmB;AACzB,QAAM,MACJ;AAEF,aAAS,IAAI,KAAW;AAEtB,aAAO,iBAAiB,KAAK,GAAG,KAAK,IAAI,KAAK,GAAG;IACnD;AAEA,QAAM,OAAO;AAEb,aAAS,KAAK,KAAW;AACvB,WAAK,YAAY;AACjB,aAAO,KAAK,KAAK,GAAG;IACtB;AAEA,QAAM,YAAY,EAAE,KAAK;AACzB,QAAM,YAAY,KAAK,KAAK;AAE5B,aAAS,cAAc,OAAa;AAClC,aAAO,OAAO,UAAU,KAAK,KAAK,SAAS,aAAa,SAAS;IACnE;AAEA,aAAS,cAAc,OAAa;AAElC,aAAO,OAAO,UAAU,KAAK;IAC/B;AAEA,aAAS,iBAAc;AACrB,aAAO;IACT;AAEA,QAAM,WAAW;AACjB,aAAS,MAAM,KAAW;AACxB,UAAI,SAAS,KAAK,GAAG;AAAG,eAAO;AAC/B,UAAI;AACF,YAAI,OAAO,GAAG;AACd,eAAO;eACA,GAAG;AACV,eAAO;;IAEX;;;;;AC5QA;AAAA;AAAA;AAMA,WAAO,UAAU,SAAS,MAAM,GAAG,GAAG;AACpC,UAAI,MAAM,EAAG,QAAO;AAEpB,UAAI,KAAK,KAAK,OAAO,KAAK,YAAY,OAAO,KAAK,UAAU;AAC1D,YAAI,EAAE,gBAAgB,EAAE,YAAa,QAAO;AAE5C,YAAI,QAAQ,GAAG;AACf,YAAI,MAAM,QAAQ,CAAC,GAAG;AACpB,mBAAS,EAAE;AACX,cAAI,UAAU,EAAE,OAAQ,QAAO;AAC/B,eAAK,IAAI,QAAQ,QAAQ;AACvB,gBAAI,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAG,QAAO;AACjC,iBAAO;AAAA,QACT;AAIA,YAAI,EAAE,gBAAgB,OAAQ,QAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE;AAC5E,YAAI,EAAE,YAAY,OAAO,UAAU,QAAS,QAAO,EAAE,QAAQ,MAAM,EAAE,QAAQ;AAC7E,YAAI,EAAE,aAAa,OAAO,UAAU,SAAU,QAAO,EAAE,SAAS,MAAM,EAAE,SAAS;AAEjF,eAAO,OAAO,KAAK,CAAC;AACpB,iBAAS,KAAK;AACd,YAAI,WAAW,OAAO,KAAK,CAAC,EAAE,OAAQ,QAAO;AAE7C,aAAK,IAAI,QAAQ,QAAQ;AACvB,cAAI,CAAC,OAAO,UAAU,eAAe,KAAK,GAAG,KAAK,CAAC,CAAC,EAAG,QAAO;AAEhE,aAAK,IAAI,QAAQ,QAAQ,KAAI;AAC3B,cAAI,MAAM,KAAK,CAAC;AAEhB,cAAI,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,EAAG,QAAO;AAAA,QACrC;AAEA,eAAO;AAAA,MACT;AAGA,aAAO,MAAI,KAAK,MAAI;AAAA,IACtB;AAAA;AAAA;;;;;;;AC5CA,QAAA,QAAA;AAGE,UAAgB,OAAO;AAEzB,YAAA,UAAe;;;;;ACNf;AAAA;AAAA;AAGa,WAAO,UAAU;AAAW,WAAO,QAAQ,UAAU;AAAW,QAAM,WAAW,EAAC,WAAU,gDAA+C,OAAM,6DAA4D,SAAQ,mBAAkB,eAAc,gIAA+H,QAAO,UAAS,wBAAuB,OAAM,YAAW,CAAC,iBAAgB,WAAU,SAAQ,WAAU,YAAW,UAAS,WAAU,YAAW,MAAM,GAAE,cAAa,EAAC,iBAAgB,EAAC,QAAO,UAAS,WAAU,gDAA+C,eAAc,oEAAmE,GAAE,WAAU,EAAC,QAAO,kBAAiB,GAAE,SAAQ,EAAC,QAAO,SAAQ,YAAW,KAAI,SAAQ,EAAC,QAAO,eAAc,EAAC,GAAE,WAAU,EAAC,QAAO,SAAQ,YAAW,IAAG,SAAQ,EAAC,QAAO,iBAAgB,EAAC,GAAE,YAAW,EAAC,QAAO,SAAQ,YAAW,KAAI,SAAQ,EAAC,QAAO,kBAAiB,EAAC,GAAE,UAAS,EAAC,QAAO,SAAQ,YAAW,KAAI,SAAQ,EAAC,QAAO,gBAAe,EAAC,GAAE,kBAAiB,EAAC,QAAO,SAAQ,YAAW,IAAG,SAAQ,EAAC,QAAO,wBAAuB,EAAC,GAAE,eAAc,EAAC,QAAO,SAAQ,YAAW,IAAG,SAAQ,EAAC,QAAO,qBAAoB,EAAC,GAAE,gBAAe,EAAC,QAAO,SAAQ,YAAW,IAAG,SAAQ,EAAC,QAAO,uBAAsB,EAAC,GAAE,UAAS,EAAC,QAAO,SAAQ,YAAW,IAAG,SAAQ,EAAC,QAAO,gBAAe,EAAC,GAAE,aAAY,EAAC,QAAO,SAAQ,YAAW,IAAG,SAAQ,EAAC,QAAO,oBAAmB,EAAC,GAAE,gBAAe,EAAC,QAAO,SAAQ,YAAW,KAAI,SAAQ,EAAC,QAAO,sBAAqB,EAAC,GAAE,aAAY,EAAC,QAAO,SAAQ,YAAW,IAAG,SAAQ,EAAC,QAAO,mBAAkB,EAAC,GAAE,WAAU,EAAC,QAAO,SAAQ,YAAW,KAAI,SAAQ,EAAC,QAAO,iBAAgB,EAAC,GAAE,WAAU,EAAC,QAAO,SAAQ,YAAW,IAAG,SAAQ,EAAC,QAAO,iBAAgB,EAAC,GAAE,cAAa,EAAC,QAAO,SAAQ,YAAW,IAAG,SAAQ,EAAC,QAAO,oBAAmB,EAAC,GAAE,mBAAkB,EAAC,QAAO,SAAQ,YAAW,IAAG,SAAQ,EAAC,QAAO,yBAAwB,EAAC,GAAE,WAAU,EAAC,QAAO,kBAAiB,GAAE,YAAW,EAAC,QAAO,mBAAkB,GAAE,QAAO,EAAC,QAAO,eAAc,EAAC,GAAE,SAAQ,EAAC,aAAY,EAAC,QAAO,UAAS,aAAY,GAAE,aAAY,IAAG,WAAU,uCAAsC,eAAc,8DAA6D,GAAE,iBAAgB,EAAC,QAAO,UAAS,WAAU,cAAa,eAAc,4DAA2D,GAAE,aAAY,EAAC,QAAO,UAAS,WAAU,8BAA6B,eAAc,uDAAsD,GAAE,eAAc,EAAC,QAAO,UAAS,UAAS,aAAY,eAAc,mDAAkD,GAAE,OAAM,EAAC,QAAO,UAAS,UAAS,OAAM,aAAY,KAAI,GAAE,SAAQ,EAAC,QAAO,UAAS,UAAS,SAAQ,aAAY,IAAG,GAAE,QAAO,EAAC,QAAO,UAAS,aAAY,GAAE,aAAY,IAAG,WAAU,wBAAuB,eAAc,2FAA0F,GAAE,kBAAiB,EAAC,QAAO,UAAS,iBAAgB,GAAE,iBAAgB,EAAC,QAAO,UAAS,WAAU,sCAAqC,GAAE,wBAAuB,EAAC,QAAO,UAAS,aAAY,GAAE,aAAY,IAAG,GAAE,eAAc,iFAAgF,GAAE,iBAAgB,EAAC,QAAO,UAAS,iBAAgB,GAAE,iBAAgB,EAAC,QAAO,UAAS,WAAU,sCAAqC,GAAE,wBAAuB,EAAC,QAAO,UAAS,aAAY,GAAE,aAAY,IAAI,GAAE,eAAc,6EAA4E,GAAE,YAAW,EAAC,QAAO,UAAS,QAAO,CAAC,WAAU,QAAO,UAAS,UAAS,YAAW,KAAI,YAAW,WAAU,aAAY,WAAU,WAAU,YAAW,SAAQ,OAAM,QAAQ,GAAE,eAAc,0DAAyD,GAAE,WAAU,EAAC,QAAO,UAAS,wBAAuB,MAAK,YAAW,CAAC,aAAa,GAAE,cAAa,EAAC,eAAc,EAAC,QAAO,yBAAwB,GAAE,WAAU,EAAC,QAAO,yBAAwB,GAAE,OAAM,EAAC,QAAO,wBAAuB,GAAE,UAAS,EAAC,QAAO,iBAAgB,GAAE,YAAW,EAAC,QAAO,kBAAiB,EAAC,EAAC,GAAE,UAAS,EAAC,QAAO,UAAS,wBAAuB,MAAK,YAAW,CAAC,KAAK,GAAE,cAAa,EAAC,OAAM,EAAC,QAAO,UAAS,UAAS,iBAAgB,aAAY,MAAK,eAAc,mCAAkC,GAAE,OAAM,EAAC,QAAO,yBAAwB,EAAC,EAAC,GAAE,WAAU,EAAC,QAAO,UAAS,wBAAuB,MAAK,cAAa,EAAC,WAAU,EAAC,QAAO,wBAAuB,GAAE,UAAS,EAAC,QAAO,UAAS,aAAY,IAAG,GAAE,YAAW,EAAC,QAAO,yBAAwB,GAAE,WAAU,EAAC,QAAO,yBAAwB,EAAC,EAAC,GAAE,QAAO,EAAC,QAAO,UAAS,wBAAuB,OAAM,YAAW,CAAC,MAAK,QAAO,KAAK,GAAE,cAAa,EAAC,MAAK,EAAC,QAAO,eAAc,GAAE,QAAO,EAAC,QAAO,mBAAkB,GAAE,SAAQ,EAAC,QAAO,yBAAwB,GAAE,OAAM,EAAC,QAAO,cAAa,GAAE,YAAW,EAAC,QAAO,UAAS,GAAE,SAAQ,EAAC,QAAO,WAAU,WAAU,EAAC,GAAE,WAAU,EAAC,QAAO,cAAa,EAAC,GAAE,SAAQ,CAAC,EAAC,MAAK,EAAC,cAAa,EAAC,QAAO,EAAC,SAAQ,SAAQ,EAAC,GAAE,YAAW,CAAC,MAAM,EAAC,GAAE,QAAO,EAAC,cAAa,EAAC,WAAU,EAAC,QAAO,cAAa,EAAC,GAAE,YAAW,CAAC,SAAS,EAAC,EAAC,CAAC,EAAC,GAAE,UAAS,EAAC,QAAO,UAAS,wBAAuB,MAAK,YAAW,CAAC,MAAK,gBAAe,QAAO,WAAW,GAAE,cAAa,EAAC,MAAK,EAAC,QAAO,eAAc,GAAE,gBAAe,EAAC,QAAO,yBAAwB,GAAE,QAAO,EAAC,QAAO,yBAAwB,GAAE,eAAc,EAAC,QAAO,wBAAuB,GAAE,aAAY,EAAC,QAAO,oBAAmB,GAAE,WAAU,EAAC,SAAQ,CAAC,EAAC,QAAO,oBAAmB,GAAE,EAAC,QAAO,OAAM,CAAC,EAAC,GAAE,aAAY,EAAC,QAAO,UAAS,GAAE,OAAM,EAAC,QAAO,cAAa,GAAE,YAAW,EAAC,QAAO,kBAAiB,GAAE,SAAQ,EAAC,QAAO,WAAU,WAAU,EAAC,EAAC,EAAC,GAAE,WAAU,EAAC,QAAO,UAAS,wBAAuB,MAAK,YAAW,CAAC,MAAK,OAAO,GAAE,cAAa,EAAC,MAAK,EAAC,QAAO,eAAc,GAAE,SAAQ,EAAC,QAAO,yBAAwB,GAAE,eAAc,EAAC,QAAO,wBAAuB,GAAE,OAAM,EAAC,QAAO,cAAa,GAAE,QAAO,EAAC,QAAO,SAAQ,YAAW,IAAG,SAAQ,EAAC,QAAO,UAAS,aAAY,GAAE,aAAY,GAAE,EAAC,GAAE,mBAAkB,EAAC,QAAO,eAAc,GAAE,aAAY,EAAC,QAAO,oBAAmB,GAAE,WAAU,EAAC,SAAQ,CAAC,EAAC,QAAO,oBAAmB,GAAE,EAAC,QAAO,OAAM,CAAC,EAAC,GAAE,eAAc,EAAC,QAAO,UAAS,GAAE,SAAQ,EAAC,QAAO,WAAU,WAAU,EAAC,EAAC,EAAC,GAAE,SAAQ,EAAC,QAAO,UAAS,wBAAuB,MAAK,YAAW,CAAC,MAAK,OAAO,GAAE,cAAa,EAAC,MAAK,EAAC,QAAO,eAAc,GAAE,SAAQ,EAAC,QAAO,UAAS,aAAY,GAAE,aAAY,IAAG,GAAE,YAAW,EAAC,QAAO,UAAS,aAAY,GAAE,aAAY,IAAG,eAAc,sHAAqH,GAAE,SAAQ,EAAC,QAAO,WAAU,WAAU,EAAC,EAAC,EAAC,GAAE,WAAU,EAAC,QAAO,UAAS,wBAAuB,MAAK,cAAa,EAAC,SAAQ,EAAC,QAAO,gBAAe,GAAE,aAAY,EAAC,QAAO,WAAU,WAAU,MAAK,GAAE,WAAU,EAAC,QAAO,cAAa,EAAC,EAAC,GAAE,YAAW,EAAC,QAAO,UAAS,wBAAuB,MAAK,YAAW,CAAC,iBAAgB,kBAAkB,GAAE,cAAa,EAAC,iBAAgB,EAAC,QAAO,oBAAmB,GAAE,kBAAiB,EAAC,QAAO,oBAAmB,GAAE,oBAAmB,EAAC,QAAO,SAAQ,YAAW,GAAE,YAAW,IAAG,eAAc,MAAK,SAAQ,EAAC,QAAO,oBAAmB,EAAC,GAAE,SAAQ,EAAC,QAAO,UAAS,aAAY,GAAE,aAAY,IAAG,eAAc,+EAA8E,GAAE,iBAAgB,EAAC,QAAO,WAAU,WAAU,MAAK,eAAc,wEAAuE,GAAE,gBAAe,EAAC,QAAO,WAAU,WAAU,MAAK,eAAc,wDAAuD,GAAE,aAAY,EAAC,QAAO,WAAU,WAAU,MAAK,eAAc,oGAAmG,GAAE,mBAAkB,EAAC,QAAO,WAAU,WAAU,OAAM,eAAc,yGAAwG,GAAE,YAAW,EAAC,QAAO,2BAA0B,EAAC,EAAC,GAAE,oBAAmB,EAAC,QAAO,UAAS,wBAAuB,OAAM,eAAc,0OAAyO,cAAa,EAAC,WAAU,EAAC,QAAO,WAAU,WAAU,OAAM,eAAc,2GAA0G,GAAE,UAAS,EAAC,QAAO,UAAS,wBAAuB,OAAM,YAAW,CAAC,UAAU,GAAE,cAAa,EAAC,YAAW,EAAC,QAAO,UAAS,aAAY,GAAE,aAAY,IAAG,eAAc,oDAAmD,GAAE,iBAAgB,EAAC,QAAO,WAAU,WAAU,KAAI,GAAE,qBAAoB,EAAC,QAAO,WAAU,WAAU,KAAI,EAAC,EAAC,GAAE,YAAW,EAAC,QAAO,UAAS,wBAAuB,OAAM,YAAW,CAAC,UAAU,GAAE,cAAa,EAAC,YAAW,EAAC,QAAO,UAAS,aAAY,GAAE,aAAY,KAAI,eAAc,4DAA2D,GAAE,kBAAiB,EAAC,QAAO,WAAU,WAAU,KAAI,EAAC,EAAC,GAAE,YAAW,EAAC,QAAO,WAAU,WAAU,MAAK,eAAc,6CAA4C,GAAE,oBAAmB,EAAC,QAAO,WAAU,WAAU,GAAE,WAAU,KAAI,eAAc,sHAAqH,EAAC,EAAC,GAAE,QAAO,EAAC,QAAO,UAAS,wBAAuB,MAAK,YAAW,CAAC,gBAAgB,GAAE,cAAa,EAAC,aAAY,EAAC,QAAO,sBAAqB,GAAE,aAAY,EAAC,QAAO,sBAAqB,GAAE,aAAY,EAAC,QAAO,UAAS,aAAY,GAAE,aAAY,KAAI,eAAc,6EAA4E,GAAE,kBAAiB,EAAC,QAAO,yBAAwB,GAAE,WAAU,EAAC,QAAO,sBAAqB,EAAC,EAAC,GAAE,kBAAiB,EAAC,QAAO,UAAS,wBAAuB,OAAM,YAAW,CAAC,QAAQ,GAAE,cAAa,EAAC,UAAS,EAAC,QAAO,UAAS,aAAY,GAAE,aAAY,IAAG,eAAc,yHAAwH,GAAE,OAAM,EAAC,QAAO,cAAa,GAAE,eAAc,EAAC,QAAO,UAAS,wBAAuB,OAAM,cAAa,EAAC,QAAO,EAAC,QAAO,UAAS,aAAY,GAAE,aAAY,IAAG,GAAE,OAAM,EAAC,QAAO,cAAa,EAAC,EAAC,GAAE,UAAS,EAAC,QAAO,UAAS,aAAY,GAAE,aAAY,KAAK,eAAc,yFAAwF,EAAC,EAAC,GAAE,eAAc,EAAC,QAAO,UAAS,wBAAuB,MAAK,eAAc,kSAAiS,cAAa,EAAC,qBAAoB,EAAC,QAAO,WAAU,WAAU,MAAK,eAAc,mFAAkF,GAAE,uBAAsB,EAAC,QAAO,WAAU,WAAU,MAAK,eAAc,uEAAsE,EAAC,EAAC,GAAE,iBAAgB,EAAC,QAAO,UAAS,wBAAuB,MAAK,YAAW,CAAC,MAAK,SAAQ,uBAAsB,WAAW,GAAE,cAAa,EAAC,MAAK,EAAC,QAAO,eAAc,GAAE,SAAQ,EAAC,QAAO,yBAAwB,GAAE,uBAAsB,EAAC,QAAO,yBAAwB,GAAE,aAAY,EAAC,QAAO,oBAAmB,GAAE,kBAAiB,EAAC,SAAQ,CAAC,EAAC,QAAO,oBAAmB,GAAE,EAAC,QAAO,OAAM,CAAC,GAAE,eAAc,+DAA8D,GAAE,gBAAe,EAAC,QAAO,UAAS,aAAY,GAAE,aAAY,KAAI,eAAc,+FAA8F,GAAE,OAAM,EAAC,QAAO,cAAa,GAAE,SAAQ,EAAC,QAAO,WAAU,WAAU,EAAC,EAAC,EAAC,GAAE,cAAa,EAAC,QAAO,UAAS,wBAAuB,MAAK,YAAW,CAAC,MAAK,gBAAe,WAAW,GAAE,cAAa,EAAC,MAAK,EAAC,QAAO,eAAc,GAAE,gBAAe,EAAC,QAAO,yBAAwB,GAAE,QAAO,EAAC,QAAO,yBAAwB,GAAE,eAAc,EAAC,QAAO,wBAAuB,GAAE,aAAY,EAAC,QAAO,oBAAmB,GAAE,WAAU,EAAC,SAAQ,CAAC,EAAC,QAAO,oBAAmB,GAAE,EAAC,QAAO,OAAM,CAAC,GAAE,eAAc,mCAAkC,GAAE,aAAY,EAAC,QAAO,UAAS,GAAE,OAAM,EAAC,QAAO,cAAa,GAAE,SAAQ,EAAC,QAAO,WAAU,WAAU,EAAC,EAAC,EAAC,GAAE,gBAAe,EAAC,QAAO,UAAS,wBAAuB,MAAK,YAAW,CAAC,MAAK,gBAAe,QAAO,WAAW,GAAE,cAAa,EAAC,MAAK,EAAC,QAAO,eAAc,GAAE,gBAAe,EAAC,QAAO,yBAAwB,GAAE,QAAO,EAAC,QAAO,yBAAwB,GAAE,SAAQ,EAAC,QAAO,yBAAwB,GAAE,eAAc,EAAC,QAAO,wBAAuB,GAAE,aAAY,EAAC,QAAO,oBAAmB,GAAE,WAAU,EAAC,SAAQ,CAAC,EAAC,QAAO,oBAAmB,GAAE,EAAC,QAAO,OAAM,CAAC,EAAC,GAAE,aAAY,EAAC,QAAO,UAAS,GAAE,OAAM,EAAC,QAAO,cAAa,GAAE,SAAQ,EAAC,QAAO,WAAU,WAAU,EAAC,EAAC,EAAC,GAAE,SAAQ,EAAC,QAAO,UAAS,wBAAuB,MAAK,YAAW,CAAC,MAAK,SAAQ,UAAS,MAAM,GAAE,cAAa,EAAC,MAAK,EAAC,QAAO,eAAc,GAAE,SAAQ,EAAC,QAAO,yBAAwB,GAAE,UAAS,EAAC,QAAO,yBAAwB,GAAE,eAAc,EAAC,QAAO,wBAAuB,GAAE,QAAO,EAAC,QAAO,oBAAmB,GAAE,OAAM,EAAC,QAAO,cAAa,GAAE,SAAQ,EAAC,QAAO,WAAU,WAAU,EAAC,EAAC,EAAC,GAAE,aAAY,EAAC,QAAO,UAAS,wBAAuB,MAAK,YAAW,CAAC,MAAK,eAAc,WAAW,GAAE,cAAa,EAAC,MAAK,EAAC,QAAO,eAAc,GAAE,eAAc,EAAC,QAAO,yBAAwB,GAAE,UAAS,EAAC,QAAO,yBAAwB,GAAE,gBAAe,EAAC,QAAO,yBAAwB,GAAE,eAAc,EAAC,QAAO,wBAAuB,GAAE,SAAQ,EAAC,QAAO,UAAS,aAAY,GAAE,aAAY,IAAG,eAAc,iGAAgG,GAAE,aAAY,EAAC,QAAO,oBAAmB,GAAE,WAAU,EAAC,SAAQ,CAAC,EAAC,QAAO,oBAAmB,GAAE,EAAC,QAAO,OAAM,CAAC,GAAE,eAAc,6BAA4B,GAAE,aAAY,EAAC,QAAO,UAAS,GAAE,OAAM,EAAC,QAAO,cAAa,GAAE,SAAQ,EAAC,QAAO,WAAU,WAAU,EAAC,EAAC,EAAC,GAAE,eAAc,EAAC,QAAO,UAAS,wBAAuB,MAAK,YAAW,CAAC,MAAK,SAAQ,MAAM,GAAE,cAAa,EAAC,MAAK,EAAC,QAAO,eAAc,GAAE,SAAQ,EAAC,QAAO,yBAAwB,GAAE,aAAY,EAAC,QAAO,yBAAwB,GAAE,eAAc,EAAC,QAAO,wBAAuB,GAAE,QAAO,EAAC,QAAO,oBAAmB,GAAE,OAAM,EAAC,QAAO,cAAa,GAAE,OAAM,EAAC,QAAO,UAAS,aAAY,GAAE,aAAY,KAAI,eAAc,+EAA8E,GAAE,aAAY,EAAC,QAAO,SAAQ,YAAW,IAAG,SAAQ,EAAC,QAAO,UAAS,aAAY,GAAE,aAAY,IAAG,GAAE,eAAc,kEAAiE,GAAE,SAAQ,EAAC,QAAO,WAAU,WAAU,EAAC,EAAC,EAAC,GAAE,YAAW,EAAC,QAAO,UAAS,wBAAuB,MAAK,YAAW,CAAC,MAAK,YAAW,aAAa,GAAE,cAAa,EAAC,MAAK,EAAC,QAAO,eAAc,GAAE,YAAW,EAAC,QAAO,oBAAmB,GAAE,eAAc,EAAC,QAAO,yBAAwB,GAAE,eAAc,EAAC,QAAO,UAAS,QAAO,CAAC,UAAS,UAAS,gBAAe,gBAAe,OAAO,GAAE,eAAc,2CAA0C,GAAE,SAAQ,EAAC,QAAO,WAAU,WAAU,EAAC,EAAC,EAAC,GAAE,UAAS,EAAC,QAAO,UAAS,wBAAuB,MAAK,YAAW,CAAC,MAAK,OAAO,GAAE,cAAa,EAAC,MAAK,EAAC,QAAO,eAAc,GAAE,SAAQ,EAAC,QAAO,yBAAwB,GAAE,YAAW,EAAC,QAAO,yBAAwB,GAAE,gBAAe,EAAC,QAAO,UAAS,aAAY,GAAE,aAAY,GAAE,GAAE,eAAc,EAAC,QAAO,wBAAuB,GAAE,kBAAiB,EAAC,QAAO,oBAAmB,GAAE,kBAAiB,EAAC,QAAO,cAAa,GAAE,sBAAqB,EAAC,QAAO,gBAAe,eAAc,4EAA2E,GAAE,SAAQ,EAAC,QAAO,WAAU,WAAU,EAAC,EAAC,EAAC,GAAE,UAAS,EAAC,QAAO,UAAS,wBAAuB,MAAK,YAAW,CAAC,MAAK,SAAQ,gBAAe,QAAQ,GAAE,cAAa,EAAC,MAAK,EAAC,QAAO,eAAc,GAAE,SAAQ,EAAC,QAAO,yBAAwB,GAAE,gBAAe,EAAC,QAAO,UAAS,aAAY,GAAE,aAAY,IAAG,GAAE,UAAS,EAAC,QAAO,UAAS,aAAY,KAAI,eAAc,mDAAkD,GAAE,UAAS,EAAC,QAAO,UAAS,QAAO,CAAC,WAAU,UAAS,WAAU,WAAW,EAAC,GAAE,eAAc,EAAC,QAAO,wBAAuB,GAAE,cAAa,EAAC,QAAO,oBAAmB,GAAE,aAAY,EAAC,QAAO,oBAAmB,GAAE,OAAM,EAAC,QAAO,cAAa,GAAE,eAAc,EAAC,QAAO,SAAQ,YAAW,IAAG,SAAQ,EAAC,QAAO,UAAS,aAAY,GAAE,aAAY,IAAG,EAAC,GAAE,SAAQ,EAAC,QAAO,WAAU,WAAU,EAAC,EAAC,EAAC,GAAE,aAAY,EAAC,QAAO,UAAS,wBAAuB,MAAK,YAAW,CAAC,MAAK,SAAQ,SAAQ,MAAM,GAAE,cAAa,EAAC,MAAK,EAAC,QAAO,eAAc,GAAE,SAAQ,EAAC,QAAO,yBAAwB,GAAE,SAAQ,EAAC,QAAO,UAAS,aAAY,GAAE,aAAY,IAAG,eAAc,+HAA8H,GAAE,QAAO,EAAC,QAAO,oBAAmB,GAAE,sBAAqB,EAAC,QAAO,gBAAe,eAAc,+EAA8E,GAAE,eAAc,EAAC,QAAO,wBAAuB,GAAE,OAAM,EAAC,QAAO,cAAa,GAAE,SAAQ,EAAC,QAAO,WAAU,WAAU,EAAC,EAAC,EAAC,GAAE,kBAAiB,EAAC,QAAO,UAAS,wBAAuB,MAAK,YAAW,CAAC,MAAK,QAAO,QAAQ,GAAE,cAAa,EAAC,MAAK,EAAC,QAAO,eAAc,GAAE,QAAO,EAAC,QAAO,wBAAuB,GAAE,UAAS,EAAC,QAAO,+BAA8B,GAAE,gBAAe,EAAC,QAAO,0BAAyB,eAAc,iGAAgG,GAAE,QAAO,EAAC,QAAO,oBAAmB,GAAE,mBAAkB,EAAC,QAAO,gBAAe,eAAc,sFAAqF,GAAE,sBAAqB,EAAC,QAAO,gBAAe,eAAc,oFAAmF,GAAE,SAAQ,EAAC,QAAO,WAAU,WAAU,EAAC,EAAC,EAAC,GAAE,wBAAuB,EAAC,QAAO,UAAS,wBAAuB,MAAK,YAAW,CAAC,MAAM,GAAE,cAAa,EAAC,QAAO,EAAC,QAAO,UAAS,aAAY,GAAE,aAAY,KAAI,eAAc,yFAAwF,GAAE,YAAW,EAAC,QAAO,0BAAyB,eAAc,+EAA8E,GAAE,OAAM,EAAC,QAAO,eAAc,eAAc,8EAA6E,EAAC,EAAC,EAAC,EAAC;AAAE,QAAM,QAAQ,OAAO,UAAU;AAAe,QAAM,WAAW,IAAI,OAAO,gDAAgD,GAAG;AAA84B,QAAM,WAAW,IAAI,OAAO,uCAAuC,GAAG;AAAE,QAAM,QAAQ,qBAAuC;AAAoQ,QAAM,WAAW;AAAyoC,aAAS,WAAW,MAAM,EAAC,eAAa,IAAI,YAAY,oBAAoB,WAAS,MAAM,iBAAe,CAAC,EAAC,IAAE,CAAC,GAAE;AAAC,UAAI,UAAU;AAAK,UAAI,SAAS;AAAE,YAAM,aAAa,WAAW;AAAU,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,QAAQ,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,IAAI,GAAE;AAAC,YAAG,KAAK,QAAQ,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,MAAK,GAAE,SAAQ,oCAAyC;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,QAAQ,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAI,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,MAAK;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,QAAO,YAAW,8BAA6B,SAAQ,aAAY,QAAO,EAAC,OAAO,KAAI,GAAE,SAAQ,0CAAyC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAE,SAAS,KAAK,KAAK,GAAG;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,QAAO,YAAW,2BAA0B,SAAQ,UAAS,QAAO,EAAC,QAAQ,gBAAe,GAAE,SAAQ,oCAA2C;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,OAAO,EAAC,cAAa,eAAa,QAAO,YAAW,yBAAwB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,IAAI;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,IAAI;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,QAAQ,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAI,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,QAAO,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,SAAS;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,OAAO,EAAC,cAAa,eAAa,QAAO,YAAW,gDAA+C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,IAAI;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,IAAI;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,OAAO,EAAC,cAAa,eAAa,QAAO,YAAW,6CAA4C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,IAAI;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,IAAI;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,WAAW;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,OAAO,EAAC,cAAa,eAAa,QAAO,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,IAAI;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,IAAI;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,wBAAM,OAAO,EAAC,cAAa,eAAa,UAAU,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,IAAI;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,IAAI;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,OAAO,EAAC,cAAa,eAAa,UAAU,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,IAAI;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,IAAI;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,UAAU,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,oDAAmD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAA,MAAC,OAAM;AAAC,cAAM,QAAQ,EAAC,cAAa,YAAW,UAAS,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,YAAG,YAAY,MAAK;AAAC,oBAAU,CAAC,KAAK;AAAA,QAAE,OAAM;AAAC,kBAAQ,KAAK,KAAK;AAAA,QAAE;AAAC;AAAA,MAAS;AAAC,iBAAW,SAAS;AAAQ,aAAO,WAAW;AAAA,IAAE;AAAC,eAAW,YAAY,EAAC,SAAQ,MAAK,gBAAe,OAAM,gBAAe,MAAK;AAAmY,QAAM,WAAW,IAAI,OAAO,cAAc,GAAG;AAAE,aAAS,WAAW,MAAM,EAAC,eAAa,IAAI,YAAY,oBAAoB,WAAS,MAAM,iBAAe,CAAC,EAAC,IAAE,CAAC,GAAE;AAAC,UAAI,UAAU;AAAK,UAAI,SAAS;AAAE,YAAM,aAAa,WAAW;AAAU,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,QAAQ,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,IAAI,GAAE;AAAC,YAAG,KAAK,YAAY,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAQ,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,CAAC,SAAS,KAAK,KAAK,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,YAAW,YAAW,iCAAgC,SAAQ,WAAU,QAAO,EAAC,SAAS,aAAY,GAAE,SAAQ,kCAAyC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,OAAO,EAAC,cAAa,eAAa,YAAW,YAAW,8BAA6B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,IAAI;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,IAAI;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,WAAW,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAO,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,WAAU,YAAW,iCAAgC,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,OAAO,EAAC,cAAa,eAAa,WAAU,YAAW,4BAA2B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,IAAI;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,IAAI;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,aAAa,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAS,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,aAAY,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,UAAU;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,OAAO,EAAC,cAAa,eAAa,aAAY,YAAW,gDAA+C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,IAAI;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,IAAI;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,OAAO,EAAC,cAAa,eAAa,aAAY,YAAW,6CAA4C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,IAAI;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,IAAI;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,YAAY;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,OAAO,EAAC,cAAa,eAAa,aAAY,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,IAAI;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,IAAI;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,wBAAM,OAAO,EAAC,cAAa,eAAa,eAAe,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,IAAI;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,IAAI;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,OAAO,EAAC,cAAa,eAAa,eAAe,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,IAAI;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,IAAI;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,eAAe,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,oDAAmD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,aAAY,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,YAAY,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAQ,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,UAAU;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,gDAA+C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,6CAA4C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,YAAY;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,cAAc,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,cAAc,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,cAAc,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,oDAAmD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAA,MAAC,OAAM;AAAC,cAAM,QAAQ,EAAC,cAAa,YAAW,UAAS,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,YAAG,YAAY,MAAK;AAAC,oBAAU,CAAC,KAAK;AAAA,QAAE,OAAM;AAAC,kBAAQ,KAAK,KAAK;AAAA,QAAE;AAAC;AAAA,MAAS;AAAC,iBAAW,SAAS;AAAQ,aAAO,WAAW;AAAA,IAAE;AAAC,eAAW,YAAY,EAAC,SAAQ,MAAK,gBAAe,OAAM,gBAAe,MAAK;AAAE,aAAS,WAAW,MAAM,EAAC,eAAa,IAAI,YAAY,oBAAoB,WAAS,MAAM,iBAAe,CAAC,EAAC,IAAE,CAAC,GAAE;AAAC,UAAI,UAAU;AAAK,UAAI,SAAS;AAAE,YAAM,aAAa,WAAW;AAAU,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,QAAQ,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,IAAI,GAAE;AAAC,YAAG,KAAK,gBAAgB,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,cAAa,GAAE,SAAQ,4CAAiD;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,gBAAgB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAY,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,gBAAe,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,SAAS;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,OAAO,EAAC,cAAa,eAAa,gBAAe,YAAW,gDAA+C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,IAAI;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,IAAI;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,OAAO,EAAC,cAAa,eAAa,gBAAe,YAAW,6CAA4C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,IAAI;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,IAAI;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,WAAW;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,OAAO,EAAC,cAAa,eAAa,gBAAe,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,IAAI;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,IAAI;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,wBAAM,OAAO,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,IAAI;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,IAAI;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,OAAO,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,IAAI;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,IAAI;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,OAAO,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,oDAAmD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,IAAI;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,IAAI;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,OAAO,EAAC,cAAa,eAAa,gBAAe,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,IAAI;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,IAAI;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,YAAY,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAQ,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,YAAW,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,UAAU;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,gDAA+C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,6CAA4C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,YAAY;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,cAAc,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,cAAc,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,cAAc,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,oDAAmD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,QAAQ,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAI,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,uCAAsC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,UAAU;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,+CAA8C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,4CAA2C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,YAAY;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,uCAAsC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAK;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,UAAU,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,wDAAuD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAI,GAAE,SAAQ,0CAAyC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,UAAU,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,wDAAuD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,UAAU,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,mDAAkD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,8BAA6B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,WAAW,QAAU;AAAC,cAAG,CAAE,WAAW,KAAK,QAAQ,EAAC,cAAa,eAAa,WAAU,YAAW,MAAK,oBAAmB,UAAS,UAAS,eAAc,CAAC,GAAG;AAAC,sBAAU,YAAY,OAAO,WAAW,SAAS,QAAQ,OAAO,WAAW,MAAM;AAAE,qBAAS,QAAQ;AAAA,UAAO;AAAA,QAAC;AAAC,YAAG,KAAK,aAAa,QAAU;AAAC,cAAG,CAAE,WAAW,KAAK,UAAU,EAAC,cAAa,eAAa,aAAY,YAAW,MAAK,oBAAmB,YAAW,UAAS,eAAc,CAAC,GAAG;AAAC,sBAAU,YAAY,OAAO,WAAW,SAAS,QAAQ,OAAO,WAAW,MAAM;AAAE,qBAAS,QAAQ;AAAA,UAAO;AAAA,QAAC;AAAA,MAAC,OAAM;AAAC,cAAM,QAAQ,EAAC,cAAa,YAAW,UAAS,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,YAAG,YAAY,MAAK;AAAC,oBAAU,CAAC,KAAK;AAAA,QAAE,OAAM;AAAC,kBAAQ,KAAK,KAAK;AAAA,QAAE;AAAC;AAAA,MAAS;AAAC,iBAAW,SAAS;AAAQ,aAAO,WAAW;AAAA,IAAE;AAAC,eAAW,YAAY,EAAC,SAAQ,MAAK,gBAAe,OAAM,gBAAe,MAAK;AAA0wB,QAAM,WAAW,EAAC,QAAO,UAAS,QAAO,CAAC,WAAU,QAAO,UAAS,UAAS,YAAW,KAAI,YAAW,WAAU,aAAY,WAAU,WAAU,YAAW,SAAQ,OAAM,QAAQ,GAAE,eAAc,0DAAyD;AAAE,QAAM,WAAW,kBAAoC,YAAY;AAAI,QAAM,YAAY,IAAI,OAAO,wBAAwB,GAAG;AAAE,aAAS,WAAW,MAAM,EAAC,eAAa,IAAI,YAAY,oBAAoB,WAAS,MAAM,iBAAe,CAAC,EAAC,IAAE,CAAC,GAAE;AAAC,UAAI,UAAU;AAAK,UAAI,SAAS;AAAE,YAAM,aAAa,WAAW;AAAU,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,YAAM,SAAS;AAAO,UAAI,SAAS;AAAK,YAAM,SAAS;AAAO,UAAG,QAAQ,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,IAAI,GAAE;AAAC,YAAI;AAAS,YAAI,KAAK,SAAS,WAAe,WAAW,SAAQ;AAAC,gBAAM,OAAO,CAAC;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS,OAAM;AAAC,cAAG,KAAK,SAAS,QAAU;AAAC,gBAAG,aAAa,KAAK,MAAK;AAAC,oBAAM,OAAO,CAAC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC;AAAA,QAAC;AAAA,MAAC;AAAC,UAAI,UAAU,WAAW;AAAO,eAAS;AAAO,UAAG,YAAY,MAAK;AAAC,YAAG,QAAO;AAAC,kBAAQ,SAAS;AAAA,QAAO,OAAM;AAAC,oBAAU;AAAA,QAAK;AAAA,MAAC;AAAC,UAAG,SAAQ;AAAC,cAAM,SAAS;AAAO,YAAG,QAAQ,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,IAAI,GAAE;AAAC,cAAG,KAAK,YAAY,QAAU;AAAC,kBAAM,OAAO,EAAC,cAAa,YAAW,2BAA0B,SAAQ,YAAW,QAAO,EAAC,iBAAiB,UAAS,GAAE,SAAQ,wCAA6C;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,IAAI;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,IAAI;AAAA,YAAE;AAAC;AAAA,UAAS;AAAC,cAAG,KAAK,YAAY,QAAU;AAAC,gBAAI,QAAQ,KAAK;AAAQ,gBAAG,OAAO,UAAU,UAAS;AAAC,kBAAG,MAAM,KAAK,IAAI,MAAK;AAAC,sBAAM,OAAO,EAAC,cAAa,eAAa,YAAW,YAAW,yBAAwB,SAAQ,aAAY,QAAO,EAAC,OAAO,KAAI,GAAE,SAAQ,0CAAyC;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,IAAI;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,IAAI;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAG,CAAE,SAAS,KAAK,GAAG;AAAC,sBAAM,OAAO,EAAC,cAAa,eAAa,YAAW,YAAW,sBAAqB,SAAQ,UAAS,QAAO,EAAC,QAAQ,MAAK,GAAE,SAAQ,0BAAiC;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,IAAI;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,IAAI;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC,OAAM;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,YAAW,YAAW,oBAAmB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC;AAAA,QAAC;AAAC,YAAI,UAAU,WAAW;AAAO,iBAAS;AAAQ,YAAG,QAAO;AAAC,cAAI,SAAS,CAAC;AAAE,iBAAO,UAAU;AAAK,iBAAO,OAAO;AAAA,QAAK;AAAA,MAAC;AAAC,UAAG,CAAC,QAAO;AAAC,cAAM,OAAO,EAAC,cAAa,YAAW,gBAAe,SAAQ,MAAK,QAAO,EAAC,gBAAgB,OAAM,GAAE,SAAQ,2BAA4B;AAAE,YAAG,YAAY,MAAK;AAAC,oBAAU,CAAC,IAAI;AAAA,QAAE,OAAM;AAAC,kBAAQ,KAAK,IAAI;AAAA,QAAE;AAAC;AAAA,MAAS;AAAC,UAAG,QAAQ,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,IAAI,GAAE;AAAC,YAAG,KAAK,OAAO,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,KAAI,GAAE,SAAQ,mCAAwC;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,SAAS,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,OAAM,GAAE,SAAQ,qCAA0C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,QAAQ,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,MAAK,GAAE,SAAQ,oCAAyC;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,mBAAU,QAAQ,MAAK;AAAC,cAAG,EAAQ,SAAS,QAAU,SAAS,UAAa,SAAS,WAAc,SAAS,SAAY,SAAS,cAAiB,SAAS,WAAc,SAAS,YAAY;AAAC,kBAAM,QAAQ,EAAC,cAAa,YAAW,0BAAyB,SAAQ,wBAAuB,QAAO,EAAC,oBAAoB,KAAI,GAAE,SAAQ,sCAAqC;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,OAAO,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAG,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,IAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,OAAM,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,OAAM,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,KAAK,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,OAAM,YAAW,wBAAuB,SAAQ,WAAU,QAAO,EAAC,SAAS,uBAAsB,GAAE,SAAQ,4CAAmD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,OAAM,YAAW,qBAAoB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,SAAS,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAK,cAAG,OAAO,UAAU,UAAS;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,SAAQ,YAAW,yBAAwB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAC,cAAG,EAAgB,UAAU,aAAe,UAAU,UAAa,UAAU,YAAe,UAAU,YAAe,UAAU,cAAiB,UAAU,OAAU,UAAU,cAAiB,UAAU,aAAgB,UAAU,eAAkB,UAAU,aAAgB,UAAU,aAAgB,UAAU,cAAiB,UAAU,WAAc,UAAU,SAAY,UAAU,WAAW;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,SAAQ,YAAW,yBAAwB,SAAQ,QAAO,QAAO,EAAC,eAAe,SAAS,KAAI,GAAE,SAAQ,6CAA4C;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAM,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,UAAU;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,gDAA+C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,6CAA4C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,YAAY;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,YAAY,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,YAAY,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,YAAY,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,oDAAmD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,QAAQ,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAI,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,MAAK;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,yBAAwB,SAAQ,aAAY,QAAO,EAAC,OAAO,KAAI,GAAE,SAAQ,0CAAyC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAE,SAAS,KAAK,GAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,sBAAqB,SAAQ,UAAS,QAAO,EAAC,QAAQ,MAAK,GAAE,SAAQ,0BAAiC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,oBAAmB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,aAAa,QAAU;AAAC,cAAG,OAAO,KAAK,aAAa,WAAU;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,aAAY,YAAW,8BAA6B,SAAQ,QAAO,QAAO,EAAC,MAAM,UAAS,GAAE,SAAQ,kBAAiB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAM,cAAG,EAAI,OAAO,SAAS,aAAc,EAAE,QAAQ,MAAM,CAAC,MAAM,KAAK,MAAQ,SAAS,KAAK,IAAI;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,2BAA0B,SAAQ,QAAO,QAAO,EAAC,MAAM,UAAS,GAAE,SAAQ,kBAAiB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAC,cAAI,OAAO,SAAS,YAAc,SAAS,KAAK,GAAG;AAAC,gBAAG,QAAQ,KAAK,MAAM,KAAK,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,8BAA6B,SAAQ,WAAU,QAAO,EAAC,YAAY,MAAM,OAAO,EAAC,GAAE,SAAQ,eAAc;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC;AAAA,QAAC;AAAC,YAAG,KAAK,YAAY,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAQ,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,MAAK;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,yBAAwB,SAAQ,aAAY,QAAO,EAAC,OAAO,KAAI,GAAE,SAAQ,0CAAyC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAE,SAAS,KAAK,GAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,sBAAqB,SAAQ,UAAS,QAAO,EAAC,QAAQ,MAAK,GAAE,SAAQ,0BAAiC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,oBAAmB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAA,MAAC,OAAM;AAAC,cAAM,QAAQ,EAAC,cAAa,YAAW,UAAS,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,YAAG,YAAY,MAAK;AAAC,oBAAU,CAAC,KAAK;AAAA,QAAE,OAAM;AAAC,kBAAQ,KAAK,KAAK;AAAA,QAAE;AAAC;AAAA,MAAS;AAAC,iBAAW,SAAS;AAAQ,aAAO,WAAW;AAAA,IAAE;AAAC,eAAW,YAAY,EAAC,SAAQ,MAAK,gBAAe,OAAM,gBAAe,MAAK;AAA8qB,QAAM,YAAY,IAAI,OAAO,8BAA8B,GAAG;AAAE,aAAS,WAAW,MAAM,EAAC,eAAa,IAAI,YAAY,oBAAoB,WAAS,MAAM,iBAAe,CAAC,EAAC,IAAE,CAAC,GAAE;AAAC,UAAI,UAAU;AAAK,UAAI,SAAS;AAAE,YAAM,aAAa,WAAW;AAAU,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,QAAQ,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,IAAI,GAAE;AAAC,YAAG,KAAK,OAAO,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,KAAI,GAAE,SAAQ,mCAAwC;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,iBAAiB,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,eAAc,GAAE,SAAQ,6CAAkD;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,SAAS,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,OAAM,GAAE,SAAQ,qCAA0C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,cAAc,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,YAAW,GAAE,SAAQ,0CAA+C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,OAAO,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAG,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,IAAG;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,KAAK,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,wBAAuB,SAAQ,WAAU,QAAO,EAAC,SAAS,uBAAsB,GAAE,SAAQ,4CAAmD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,qBAAoB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,IAAI;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,IAAI;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,iBAAiB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAa,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,iBAAgB,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,SAAS;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,OAAO,EAAC,cAAa,eAAa,iBAAgB,YAAW,gDAA+C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,IAAI;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,IAAI;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,iBAAgB,YAAW,6CAA4C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,WAAW;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,iBAAgB,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,mBAAmB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,mBAAmB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,mBAAmB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,oDAAmD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,iBAAgB,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,SAAS,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAK,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,SAAQ,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,UAAU;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,SAAQ,YAAW,gDAA+C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,SAAQ,YAAW,6CAA4C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,YAAY;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,SAAQ,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,WAAW,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,WAAW,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,WAAW,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,oDAAmD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,SAAQ,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,gBAAgB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAY,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,uCAAsC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,UAAU;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,+CAA8C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,4CAA2C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,YAAY;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,uCAAsC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAK;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,wDAAuD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAI,GAAE,SAAQ,0CAAyC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,wDAAuD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,mDAAkD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,8BAA6B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,cAAc,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAU,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,KAAK,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,cAAa,YAAW,6BAA4B,SAAQ,WAAU,QAAO,EAAC,SAAS,6BAA4B,GAAE,SAAQ,kDAAyD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,cAAa,YAAW,0BAAyB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,YAAY,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAQ,gBAAM,UAAU;AAAO,cAAI,UAAU;AAAM,gBAAM,UAAU;AAAO,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,KAAK,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,6BAA4B,SAAQ,WAAU,QAAO,EAAC,SAAS,6BAA4B,GAAE,SAAQ,kDAAyD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,0BAAyB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAC,cAAI,UAAU,YAAY;AAAO,oBAAU,WAAW;AAAQ,gBAAM,UAAU;AAAO,cAAG,UAAU,MAAK;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,qCAAoC,SAAQ,QAAO,QAAO,EAAC,MAAM,OAAM,GAAE,SAAQ,eAAc;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAC,cAAI,UAAU,YAAY;AAAO,oBAAU,WAAW;AAAQ,cAAG,CAAC,SAAQ;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,8BAA6B,SAAQ,SAAQ,QAAO,CAAC,GAAE,SAAQ,+BAA8B;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS,OAAM;AAAC,qBAAS;AAAQ,gBAAG,YAAY,MAAK;AAAC,kBAAG,SAAQ;AAAC,wBAAQ,SAAS;AAAA,cAAQ,OAAM;AAAC,0BAAU;AAAA,cAAK;AAAA,YAAC;AAAA,UAAC;AAAA,QAAC;AAAC,YAAG,KAAK,cAAc,QAAU;AAAC,cAAG,OAAO,KAAK,cAAc,WAAU;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,cAAa,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,UAAS,GAAE,SAAQ,kBAAiB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,QAAQ,QAAU;AAAC,cAAI,SAAS,KAAK;AAAI,cAAG,OAAO,WAAW,UAAS;AAAC,gBAAG,MAAM,MAAM,IAAI,MAAK;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,yBAAwB,SAAQ,aAAY,QAAO,EAAC,OAAO,KAAI,GAAE,SAAQ,0CAAyC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAE,SAAS,MAAM,GAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,sBAAqB,SAAQ,UAAS,QAAO,EAAC,QAAQ,MAAK,GAAE,SAAQ,0BAAiC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,oBAAmB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,aAAa,QAAU;AAAC,cAAG,CAAE,WAAW,KAAK,UAAU,EAAC,cAAa,eAAa,aAAY,YAAW,MAAK,oBAAmB,YAAW,UAAS,eAAc,CAAC,GAAG;AAAC,sBAAU,YAAY,OAAO,WAAW,SAAS,QAAQ,OAAO,WAAW,MAAM;AAAE,qBAAS,QAAQ;AAAA,UAAO;AAAA,QAAC;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,cAAI,SAAS,KAAK;AAAM,cAAG,EAAI,OAAO,UAAU,aAAc,EAAE,SAAS,MAAM,CAAC,MAAM,MAAM,MAAQ,SAAS,MAAM,IAAI;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,2BAA0B,SAAQ,QAAO,QAAO,EAAC,MAAM,UAAS,GAAE,SAAQ,kBAAiB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAC,cAAI,OAAO,UAAU,YAAc,SAAS,MAAM,GAAG;AAAC,gBAAG,SAAS,KAAK,MAAM,MAAM,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,8BAA6B,SAAQ,WAAU,QAAO,EAAC,YAAY,MAAM,OAAO,EAAC,GAAE,SAAQ,eAAc;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC;AAAA,QAAC;AAAA,MAAC,OAAM;AAAC,cAAM,QAAQ,EAAC,cAAa,YAAW,UAAS,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,YAAG,YAAY,MAAK;AAAC,oBAAU,CAAC,KAAK;AAAA,QAAE,OAAM;AAAC,kBAAQ,KAAK,KAAK;AAAA,QAAE;AAAC;AAAA,MAAS;AAAC,iBAAW,SAAS;AAAQ,aAAO,WAAW;AAAA,IAAE;AAAC,eAAW,YAAY,EAAC,SAAQ,MAAK,gBAAe,OAAM,gBAAe,MAAK;AAAwjB,aAAS,WAAW,MAAM,EAAC,eAAa,IAAI,YAAY,oBAAoB,WAAS,MAAM,iBAAe,CAAC,EAAC,IAAE,CAAC,GAAE;AAAC,UAAI,UAAU;AAAK,UAAI,SAAS;AAAE,YAAM,aAAa,WAAW;AAAU,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,QAAQ,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,IAAI,GAAE;AAAC,YAAG,KAAK,OAAO,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,KAAI,GAAE,SAAQ,mCAAwC;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,QAAO,GAAE,SAAQ,sCAA2C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,OAAO,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAG,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,IAAG;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,KAAK,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,wBAAuB,SAAQ,WAAU,QAAO,EAAC,SAAS,uBAAsB,GAAE,SAAQ,4CAAmD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,qBAAoB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,IAAI;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,IAAI;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAM,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,UAAS,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,SAAS;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,OAAO,EAAC,cAAa,eAAa,UAAS,YAAW,gDAA+C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,IAAI;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,IAAI;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,OAAO,EAAC,cAAa,eAAa,UAAS,YAAW,6CAA4C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,IAAI;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,IAAI;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,WAAW;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,OAAO,EAAC,cAAa,eAAa,UAAS,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,IAAI;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,IAAI;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,YAAY,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,YAAY,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,YAAY,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,oDAAmD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,gBAAgB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAY,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,uCAAsC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,UAAU;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,+CAA8C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,4CAA2C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,YAAY;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,uCAAsC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAK;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,wDAAuD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAI,GAAE,SAAQ,0CAAyC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,wDAAuD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,mDAAkD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,8BAA6B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,QAAQ,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAI,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,MAAK;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,yBAAwB,SAAQ,aAAY,QAAO,EAAC,OAAO,KAAI,GAAE,SAAQ,0CAAyC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAE,SAAS,KAAK,GAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,sBAAqB,SAAQ,UAAS,QAAO,EAAC,QAAQ,MAAK,GAAE,SAAQ,0BAAiC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,oBAAmB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,SAAS,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAK,cAAG,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,MAAM,SAAS,IAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,SAAQ,YAAW,8BAA6B,SAAQ,YAAW,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,mCAAkC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,kBAAM,OAAO,MAAM;AAAO,qBAAQ,KAAG,GAAG,KAAG,MAAM,MAAK;AAAC,kBAAI,QAAQ,MAAM,EAAE;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,IAAG;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,WAAW,IAAG,YAAW,qCAAoC,SAAQ,aAAY,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,WAAW,IAAG,YAAW,qCAAoC,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,WAAW,IAAG,YAAW,gCAA+B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,SAAQ,YAAW,0BAAyB,SAAQ,QAAO,QAAO,EAAC,MAAM,QAAO,GAAE,SAAQ,gBAAe;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,oBAAoB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAgB,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,IAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,oBAAmB,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,oBAAmB,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,KAAK,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,oBAAmB,YAAW,wBAAuB,SAAQ,WAAU,QAAO,EAAC,SAAS,uBAAsB,GAAE,SAAQ,4CAAmD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,oBAAmB,YAAW,qBAAoB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,cAAc,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAU,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,KAAK,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,cAAa,YAAW,6BAA4B,SAAQ,WAAU,QAAO,EAAC,SAAS,6BAA4B,GAAE,SAAQ,kDAAyD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,cAAa,YAAW,0BAAyB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,YAAY,QAAU;AAAC,cAAI,SAAS,KAAK;AAAQ,gBAAM,UAAU;AAAO,cAAI,UAAU;AAAM,gBAAM,UAAU;AAAO,cAAG,OAAO,WAAW,UAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,MAAM,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,6BAA4B,SAAQ,WAAU,QAAO,EAAC,SAAS,6BAA4B,GAAE,SAAQ,kDAAyD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,0BAAyB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAC,cAAI,UAAU,YAAY;AAAO,oBAAU,WAAW;AAAQ,gBAAM,UAAU;AAAO,cAAG,WAAW,MAAK;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,qCAAoC,SAAQ,QAAO,QAAO,EAAC,MAAM,OAAM,GAAE,SAAQ,eAAc;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAC,cAAI,UAAU,YAAY;AAAO,oBAAU,WAAW;AAAQ,cAAG,CAAC,SAAQ;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,8BAA6B,SAAQ,SAAQ,QAAO,CAAC,GAAE,SAAQ,+BAA8B;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS,OAAM;AAAC,qBAAS;AAAQ,gBAAG,YAAY,MAAK;AAAC,kBAAG,SAAQ;AAAC,wBAAQ,SAAS;AAAA,cAAQ,OAAM;AAAC,0BAAU;AAAA,cAAK;AAAA,YAAC;AAAA,UAAC;AAAA,QAAC;AAAC,YAAG,KAAK,gBAAgB,QAAU;AAAC,cAAG,OAAO,KAAK,gBAAgB,WAAU;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,iCAAgC,SAAQ,QAAO,QAAO,EAAC,MAAM,UAAS,GAAE,SAAQ,kBAAiB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,cAAI,SAAS,KAAK;AAAM,cAAG,EAAI,OAAO,UAAU,aAAc,EAAE,SAAS,MAAM,CAAC,MAAM,MAAM,MAAQ,SAAS,MAAM,IAAI;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,2BAA0B,SAAQ,QAAO,QAAO,EAAC,MAAM,UAAS,GAAE,SAAQ,kBAAiB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAC,cAAI,OAAO,UAAU,YAAc,SAAS,MAAM,GAAG;AAAC,gBAAG,SAAS,KAAK,MAAM,MAAM,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,8BAA6B,SAAQ,WAAU,QAAO,EAAC,YAAY,MAAM,OAAO,EAAC,GAAE,SAAQ,eAAc;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC;AAAA,QAAC;AAAA,MAAC,OAAM;AAAC,cAAM,QAAQ,EAAC,cAAa,YAAW,UAAS,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,YAAG,YAAY,MAAK;AAAC,oBAAU,CAAC,KAAK;AAAA,QAAE,OAAM;AAAC,kBAAQ,KAAK,KAAK;AAAA,QAAE;AAAC;AAAA,MAAS;AAAC,iBAAW,SAAS;AAAQ,aAAO,WAAW;AAAA,IAAE;AAAC,eAAW,YAAY,EAAC,SAAQ,MAAK,gBAAe,OAAM,gBAAe,MAAK;AAAoa,aAAS,WAAW,MAAM,EAAC,eAAa,IAAI,YAAY,oBAAoB,WAAS,MAAM,iBAAe,CAAC,EAAC,IAAE,CAAC,GAAE;AAAC,UAAI,UAAU;AAAK,UAAI,SAAS;AAAE,YAAM,aAAa,WAAW;AAAU,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,QAAQ,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,IAAI,GAAE;AAAC,YAAG,KAAK,OAAO,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,KAAI,GAAE,SAAQ,mCAAwC;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,QAAO,GAAE,SAAQ,sCAA2C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,OAAO,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAG,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,IAAG;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,KAAK,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,wBAAuB,SAAQ,WAAU,QAAO,EAAC,SAAS,uBAAsB,GAAE,SAAQ,4CAAmD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,qBAAoB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,IAAI;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,IAAI;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAM,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,UAAS,YAAW,gCAA+B,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,UAAS,YAAW,gCAA+B,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,OAAO,EAAC,cAAa,eAAa,UAAS,YAAW,2BAA0B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,IAAI;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,IAAI;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,aAAa,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAS,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,IAAG;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,aAAY,YAAW,mCAAkC,SAAQ,aAAY,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,aAAY,YAAW,mCAAkC,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,aAAY,YAAW,8BAA6B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAM,cAAG,EAAI,OAAO,SAAS,aAAc,EAAE,QAAQ,MAAM,CAAC,MAAM,KAAK,MAAQ,SAAS,KAAK,IAAI;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,2BAA0B,SAAQ,QAAO,QAAO,EAAC,MAAM,UAAS,GAAE,SAAQ,kBAAiB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAC,cAAI,OAAO,SAAS,YAAc,SAAS,KAAK,GAAG;AAAC,gBAAG,QAAQ,KAAK,MAAM,KAAK,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,8BAA6B,SAAQ,WAAU,QAAO,EAAC,YAAY,MAAM,OAAO,EAAC,GAAE,SAAQ,eAAc;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC;AAAA,QAAC;AAAA,MAAC,OAAM;AAAC,cAAM,QAAQ,EAAC,cAAa,YAAW,UAAS,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,YAAG,YAAY,MAAK;AAAC,oBAAU,CAAC,KAAK;AAAA,QAAE,OAAM;AAAC,kBAAQ,KAAK,KAAK;AAAA,QAAE;AAAC;AAAA,MAAS;AAAC,iBAAW,SAAS;AAAQ,aAAO,WAAW;AAAA,IAAE;AAAC,eAAW,YAAY,EAAC,SAAQ,MAAK,gBAAe,OAAM,gBAAe,MAAK;AAA2rB,aAAS,WAAW,MAAM,EAAC,eAAa,IAAI,YAAY,oBAAoB,WAAS,MAAM,iBAAe,CAAC,EAAC,IAAE,CAAC,GAAE;AAAC,UAAI,UAAU;AAAK,UAAI,SAAS;AAAE,YAAM,aAAa,WAAW;AAAU,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,QAAQ,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,IAAI,GAAE;AAAC,YAAG,KAAK,OAAO,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,KAAI,GAAE,SAAQ,mCAAwC;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,QAAO,GAAE,SAAQ,sCAA2C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,wBAAwB,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,sBAAqB,GAAE,SAAQ,oDAAyD;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,cAAc,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,YAAW,GAAE,SAAQ,0CAA+C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,OAAO,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAG,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,IAAG;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,KAAK,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,wBAAuB,SAAQ,WAAU,QAAO,EAAC,SAAS,uBAAsB,GAAE,SAAQ,4CAAmD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,qBAAoB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,IAAI;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,IAAI;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAM,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,UAAS,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,SAAS;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,OAAO,EAAC,cAAa,eAAa,UAAS,YAAW,gDAA+C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,IAAI;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,IAAI;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,6CAA4C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,WAAW;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,YAAY,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,YAAY,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,YAAY,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,oDAAmD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,wBAAwB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAoB,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,wBAAuB,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,UAAU;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,wBAAuB,YAAW,gDAA+C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,wBAAuB,YAAW,6CAA4C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,YAAY;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,wBAAuB,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,0BAA0B,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,0BAA0B,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,0BAA0B,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,oDAAmD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,wBAAuB,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,cAAc,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAU,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,KAAK,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,cAAa,YAAW,6BAA4B,SAAQ,WAAU,QAAO,EAAC,SAAS,6BAA4B,GAAE,SAAQ,kDAAyD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,cAAa,YAAW,0BAAyB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,mBAAmB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAe,gBAAM,UAAU;AAAO,cAAI,SAAS;AAAM,gBAAM,UAAU;AAAO,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,KAAK,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,mBAAkB,YAAW,6BAA4B,SAAQ,WAAU,QAAO,EAAC,SAAS,6BAA4B,GAAE,SAAQ,kDAAyD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,mBAAkB,YAAW,0BAAyB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAC,cAAI,UAAU,YAAY;AAAO,mBAAS,UAAU;AAAQ,gBAAM,UAAU;AAAO,cAAG,UAAU,MAAK;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,mBAAkB,YAAW,4CAA2C,SAAQ,QAAO,QAAO,EAAC,MAAM,OAAM,GAAE,SAAQ,eAAc;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAC,cAAI,UAAU,YAAY;AAAO,mBAAS,UAAU;AAAQ,cAAG,CAAC,QAAO;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,mBAAkB,YAAW,qCAAoC,SAAQ,SAAQ,QAAO,CAAC,GAAE,SAAQ,+BAA8B;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS,OAAM;AAAC,qBAAS;AAAQ,gBAAG,YAAY,MAAK;AAAC,kBAAG,SAAQ;AAAC,wBAAQ,SAAS;AAAA,cAAQ,OAAM;AAAC,0BAAU;AAAA,cAAK;AAAA,YAAC;AAAA,UAAC;AAAA,QAAC;AAAC,YAAG,KAAK,iBAAiB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAa,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,iBAAgB,YAAW,uCAAsC,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,iBAAgB,YAAW,uCAAsC,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,iBAAgB,YAAW,kCAAiC,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,QAAQ,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAI,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,MAAK;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,yBAAwB,SAAQ,aAAY,QAAO,EAAC,OAAO,KAAI,GAAE,SAAQ,0CAAyC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAE,SAAS,KAAK,GAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,sBAAqB,SAAQ,UAAS,QAAO,EAAC,QAAQ,MAAK,GAAE,SAAQ,0BAAiC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,oBAAmB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAM,cAAG,EAAI,OAAO,SAAS,aAAc,EAAE,QAAQ,MAAM,CAAC,MAAM,KAAK,MAAQ,SAAS,KAAK,IAAI;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,2BAA0B,SAAQ,QAAO,QAAO,EAAC,MAAM,UAAS,GAAE,SAAQ,kBAAiB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAC,cAAI,OAAO,SAAS,YAAc,SAAS,KAAK,GAAG;AAAC,gBAAG,QAAQ,KAAK,MAAM,KAAK,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,8BAA6B,SAAQ,WAAU,QAAO,EAAC,YAAY,MAAM,OAAO,EAAC,GAAE,SAAQ,eAAc;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC;AAAA,QAAC;AAAA,MAAC,OAAM;AAAC,cAAM,QAAQ,EAAC,cAAa,YAAW,UAAS,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,YAAG,YAAY,MAAK;AAAC,oBAAU,CAAC,KAAK;AAAA,QAAE,OAAM;AAAC,kBAAQ,KAAK,KAAK;AAAA,QAAE;AAAC;AAAA,MAAS;AAAC,iBAAW,SAAS;AAAQ,aAAO,WAAW;AAAA,IAAE;AAAC,eAAW,YAAY,EAAC,SAAQ,MAAK,gBAAe,OAAM,gBAAe,MAAK;AAAmiB,aAAS,WAAW,MAAM,EAAC,eAAa,IAAI,YAAY,oBAAoB,WAAS,MAAM,iBAAe,CAAC,EAAC,IAAE,CAAC,GAAE;AAAC,UAAI,UAAU;AAAK,UAAI,SAAS;AAAE,YAAM,aAAa,WAAW;AAAU,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,QAAQ,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,IAAI,GAAE;AAAC,YAAG,KAAK,OAAO,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,KAAI,GAAE,SAAQ,mCAAwC;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,iBAAiB,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,eAAc,GAAE,SAAQ,6CAAkD;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,cAAc,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,YAAW,GAAE,SAAQ,0CAA+C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,OAAO,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAG,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,IAAG;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,KAAK,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,wBAAuB,SAAQ,WAAU,QAAO,EAAC,SAAS,uBAAsB,GAAE,SAAQ,4CAAmD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,qBAAoB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,IAAI;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,IAAI;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,iBAAiB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAa,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,iBAAgB,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,SAAS;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,OAAO,EAAC,cAAa,eAAa,iBAAgB,YAAW,gDAA+C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,IAAI;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,IAAI;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,OAAO,EAAC,cAAa,eAAa,iBAAgB,YAAW,6CAA4C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,IAAI;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,IAAI;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,WAAW;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,iBAAgB,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,mBAAmB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,mBAAmB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,mBAAmB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,oDAAmD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,iBAAgB,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,SAAS,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAK,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,SAAQ,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,UAAU;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,SAAQ,YAAW,gDAA+C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,SAAQ,YAAW,6CAA4C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,YAAY;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,SAAQ,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,WAAW,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,WAAW,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,WAAW,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,oDAAmD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,SAAQ,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,gBAAgB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAY,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,uCAAsC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,UAAU;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,+CAA8C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,4CAA2C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,YAAY;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,uCAAsC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAK;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,wDAAuD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAI,GAAE,SAAQ,0CAAyC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,wDAAuD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,mDAAkD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,8BAA6B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,cAAc,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAU,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,KAAK,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,cAAa,YAAW,6BAA4B,SAAQ,WAAU,QAAO,EAAC,SAAS,6BAA4B,GAAE,SAAQ,kDAAyD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,cAAa,YAAW,0BAAyB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,YAAY,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAQ,gBAAM,UAAU;AAAO,cAAI,UAAU;AAAM,gBAAM,UAAU;AAAO,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,KAAK,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,6BAA4B,SAAQ,WAAU,QAAO,EAAC,SAAS,6BAA4B,GAAE,SAAQ,kDAAyD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,0BAAyB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAC,cAAI,UAAU,YAAY;AAAO,oBAAU,WAAW;AAAQ,gBAAM,UAAU;AAAO,cAAG,UAAU,MAAK;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,qCAAoC,SAAQ,QAAO,QAAO,EAAC,MAAM,OAAM,GAAE,SAAQ,eAAc;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAC,cAAI,UAAU,YAAY;AAAO,oBAAU,WAAW;AAAQ,cAAG,CAAC,SAAQ;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,8BAA6B,SAAQ,SAAQ,QAAO,CAAC,GAAE,SAAQ,+BAA8B;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS,OAAM;AAAC,qBAAS;AAAQ,gBAAG,YAAY,MAAK;AAAC,kBAAG,SAAQ;AAAC,wBAAQ,SAAS;AAAA,cAAQ,OAAM;AAAC,0BAAU;AAAA,cAAK;AAAA,YAAC;AAAA,UAAC;AAAA,QAAC;AAAC,YAAG,KAAK,cAAc,QAAU;AAAC,cAAG,OAAO,KAAK,cAAc,WAAU;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,cAAa,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,UAAS,GAAE,SAAQ,kBAAiB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,QAAQ,QAAU;AAAC,cAAI,SAAS,KAAK;AAAI,cAAG,OAAO,WAAW,UAAS;AAAC,gBAAG,MAAM,MAAM,IAAI,MAAK;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,yBAAwB,SAAQ,aAAY,QAAO,EAAC,OAAO,KAAI,GAAE,SAAQ,0CAAyC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAE,SAAS,MAAM,GAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,sBAAqB,SAAQ,UAAS,QAAO,EAAC,QAAQ,MAAK,GAAE,SAAQ,0BAAiC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,oBAAmB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,cAAI,SAAS,KAAK;AAAM,cAAG,EAAI,OAAO,UAAU,aAAc,EAAE,SAAS,MAAM,CAAC,MAAM,MAAM,MAAQ,SAAS,MAAM,IAAI;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,2BAA0B,SAAQ,QAAO,QAAO,EAAC,MAAM,UAAS,GAAE,SAAQ,kBAAiB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAC,cAAI,OAAO,UAAU,YAAc,SAAS,MAAM,GAAG;AAAC,gBAAG,SAAS,KAAK,MAAM,MAAM,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,8BAA6B,SAAQ,WAAU,QAAO,EAAC,YAAY,MAAM,OAAO,EAAC,GAAE,SAAQ,eAAc;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC;AAAA,QAAC;AAAA,MAAC,OAAM;AAAC,cAAM,QAAQ,EAAC,cAAa,YAAW,UAAS,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,YAAG,YAAY,MAAK;AAAC,oBAAU,CAAC,KAAK;AAAA,QAAE,OAAM;AAAC,kBAAQ,KAAK,KAAK;AAAA,QAAE;AAAC;AAAA,MAAS;AAAC,iBAAW,SAAS;AAAQ,aAAO,WAAW;AAAA,IAAE;AAAC,eAAW,YAAY,EAAC,SAAQ,MAAK,gBAAe,OAAM,gBAAe,MAAK;AAAmiB,aAAS,WAAW,MAAM,EAAC,eAAa,IAAI,YAAY,oBAAoB,WAAS,MAAM,iBAAe,CAAC,EAAC,IAAE,CAAC,GAAE;AAAC,UAAI,UAAU;AAAK,UAAI,SAAS;AAAE,YAAM,aAAa,WAAW;AAAU,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,QAAQ,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,IAAI,GAAE;AAAC,YAAG,KAAK,OAAO,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,KAAI,GAAE,SAAQ,mCAAwC;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,iBAAiB,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,eAAc,GAAE,SAAQ,6CAAkD;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,SAAS,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,OAAM,GAAE,SAAQ,qCAA0C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,cAAc,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,YAAW,GAAE,SAAQ,0CAA+C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,OAAO,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAG,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,IAAG;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,KAAK,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,wBAAuB,SAAQ,WAAU,QAAO,EAAC,SAAS,uBAAsB,GAAE,SAAQ,4CAAmD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,qBAAoB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,IAAI;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,IAAI;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,iBAAiB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAa,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,iBAAgB,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,SAAS;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,OAAO,EAAC,cAAa,eAAa,iBAAgB,YAAW,gDAA+C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,IAAI;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,IAAI;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,iBAAgB,YAAW,6CAA4C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,WAAW;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,iBAAgB,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,mBAAmB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,mBAAmB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,mBAAmB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,oDAAmD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,iBAAgB,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,SAAS,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAK,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,SAAQ,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,UAAU;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,SAAQ,YAAW,gDAA+C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,SAAQ,YAAW,6CAA4C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,YAAY;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,SAAQ,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,WAAW,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,WAAW,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,WAAW,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,oDAAmD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,SAAQ,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAM,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,UAAU;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,gDAA+C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,6CAA4C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,YAAY;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,YAAY,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,YAAY,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,YAAY,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,oDAAmD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,gBAAgB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAY,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,uCAAsC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,UAAU;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,+CAA8C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,4CAA2C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,UAAU,YAAY;AAAO,kBAAG,CAAC,SAAQ;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,uCAAsC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAK;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,wDAAuD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAI,GAAE,SAAQ,0CAAyC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,wDAAuD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,mDAAkD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,8BAA6B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,cAAc,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAU,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,KAAK,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,cAAa,YAAW,6BAA4B,SAAQ,WAAU,QAAO,EAAC,SAAS,6BAA4B,GAAE,SAAQ,kDAAyD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,cAAa,YAAW,0BAAyB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,YAAY,QAAU;AAAC,cAAI,SAAS,KAAK;AAAQ,gBAAM,UAAU;AAAO,cAAI,UAAU;AAAM,gBAAM,UAAU;AAAO,cAAG,OAAO,WAAW,UAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,MAAM,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,6BAA4B,SAAQ,WAAU,QAAO,EAAC,SAAS,6BAA4B,GAAE,SAAQ,kDAAyD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,0BAAyB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAC,cAAI,UAAU,YAAY;AAAO,oBAAU,WAAW;AAAQ,gBAAM,UAAU;AAAO,cAAG,WAAW,MAAK;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,qCAAoC,SAAQ,QAAO,QAAO,EAAC,MAAM,OAAM,GAAE,SAAQ,eAAc;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAC,cAAI,UAAU,YAAY;AAAO,oBAAU,WAAW;AAAQ,cAAG,CAAC,SAAQ;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,8BAA6B,SAAQ,SAAQ,QAAO,CAAC,GAAE,SAAQ,+BAA8B;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS,OAAM;AAAC,qBAAS;AAAQ,gBAAG,YAAY,MAAK;AAAC,kBAAG,SAAQ;AAAC,wBAAQ,SAAS;AAAA,cAAQ,OAAM;AAAC,0BAAU;AAAA,cAAK;AAAA,YAAC;AAAA,UAAC;AAAA,QAAC;AAAC,YAAG,KAAK,cAAc,QAAU;AAAC,cAAG,OAAO,KAAK,cAAc,WAAU;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,cAAa,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,UAAS,GAAE,SAAQ,kBAAiB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,QAAQ,QAAU;AAAC,cAAI,SAAS,KAAK;AAAI,cAAG,OAAO,WAAW,UAAS;AAAC,gBAAG,MAAM,MAAM,IAAI,MAAK;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,yBAAwB,SAAQ,aAAY,QAAO,EAAC,OAAO,KAAI,GAAE,SAAQ,0CAAyC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAE,SAAS,MAAM,GAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,sBAAqB,SAAQ,UAAS,QAAO,EAAC,QAAQ,MAAK,GAAE,SAAQ,0BAAiC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,oBAAmB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,cAAI,SAAS,KAAK;AAAM,cAAG,EAAI,OAAO,UAAU,aAAc,EAAE,SAAS,MAAM,CAAC,MAAM,MAAM,MAAQ,SAAS,MAAM,IAAI;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,2BAA0B,SAAQ,QAAO,QAAO,EAAC,MAAM,UAAS,GAAE,SAAQ,kBAAiB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAC,cAAI,OAAO,UAAU,YAAc,SAAS,MAAM,GAAG;AAAC,gBAAG,SAAS,KAAK,MAAM,MAAM,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,8BAA6B,SAAQ,WAAU,QAAO,EAAC,YAAY,MAAM,OAAO,EAAC,GAAE,SAAQ,eAAc;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC;AAAA,QAAC;AAAA,MAAC,OAAM;AAAC,cAAM,QAAQ,EAAC,cAAa,YAAW,UAAS,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,YAAG,YAAY,MAAK;AAAC,oBAAU,CAAC,KAAK;AAAA,QAAE,OAAM;AAAC,kBAAQ,KAAK,KAAK;AAAA,QAAE;AAAC;AAAA,MAAS;AAAC,iBAAW,SAAS;AAAQ,aAAO,WAAW;AAAA,IAAE;AAAC,eAAW,YAAY,EAAC,SAAQ,MAAK,gBAAe,OAAM,gBAAe,MAAK;AAAmY,aAAS,WAAW,MAAM,EAAC,eAAa,IAAI,YAAY,oBAAoB,WAAS,MAAM,iBAAe,CAAC,EAAC,IAAE,CAAC,GAAE;AAAC,UAAI,UAAU;AAAK,UAAI,SAAS;AAAE,YAAM,aAAa,WAAW;AAAU,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,QAAQ,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,IAAI,GAAE;AAAC,YAAG,KAAK,OAAO,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,KAAI,GAAE,SAAQ,mCAAwC;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,QAAO,GAAE,SAAQ,sCAA2C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,WAAW,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,SAAQ,GAAE,SAAQ,uCAA4C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,SAAS,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,OAAM,GAAE,SAAQ,qCAA0C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,OAAO,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAG,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,IAAG;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,KAAK,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,wBAAuB,SAAQ,WAAU,QAAO,EAAC,SAAS,uBAAsB,GAAE,SAAQ,4CAAmD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,qBAAoB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,IAAI;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,IAAI;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAM,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,UAAS,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,SAAS;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,OAAO,EAAC,cAAa,eAAa,UAAS,YAAW,gDAA+C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,IAAI;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,IAAI;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,6CAA4C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,WAAW;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,YAAY,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,YAAY,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,YAAY,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,oDAAmD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,WAAW,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAO,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,WAAU,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,UAAU;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,WAAU,YAAW,gDAA+C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,WAAU,YAAW,6CAA4C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,YAAY;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,WAAU,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,aAAa,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,aAAa,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,aAAa,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,oDAAmD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,WAAU,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,gBAAgB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAY,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,uCAAsC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,UAAU;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,+CAA8C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,4CAA2C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,YAAY;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,uCAAsC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAK;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,wDAAuD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAI,GAAE,SAAQ,0CAAyC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,wDAAuD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,mDAAkD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,8BAA6B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,SAAS,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAK,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,KAAK,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,SAAQ,YAAW,6BAA4B,SAAQ,WAAU,QAAO,EAAC,SAAS,6BAA4B,GAAE,SAAQ,kDAAyD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,SAAQ,YAAW,0BAAyB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,QAAQ,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAI,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,MAAK;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,yBAAwB,SAAQ,aAAY,QAAO,EAAC,OAAO,KAAI,GAAE,SAAQ,0CAAyC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAE,SAAS,KAAK,GAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,sBAAqB,SAAQ,UAAS,QAAO,EAAC,QAAQ,MAAK,GAAE,SAAQ,0BAAiC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,oBAAmB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAM,cAAG,EAAI,OAAO,SAAS,aAAc,EAAE,QAAQ,MAAM,CAAC,MAAM,KAAK,MAAQ,SAAS,KAAK,IAAI;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,2BAA0B,SAAQ,QAAO,QAAO,EAAC,MAAM,UAAS,GAAE,SAAQ,kBAAiB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAC,cAAI,OAAO,SAAS,YAAc,SAAS,KAAK,GAAG;AAAC,gBAAG,QAAQ,KAAK,MAAM,KAAK,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,8BAA6B,SAAQ,WAAU,QAAO,EAAC,YAAY,MAAM,OAAO,EAAC,GAAE,SAAQ,eAAc;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC;AAAA,QAAC;AAAA,MAAC,OAAM;AAAC,cAAM,QAAQ,EAAC,cAAa,YAAW,UAAS,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,YAAG,YAAY,MAAK;AAAC,oBAAU,CAAC,KAAK;AAAA,QAAE,OAAM;AAAC,kBAAQ,KAAK,KAAK;AAAA,QAAE;AAAC;AAAA,MAAS;AAAC,iBAAW,SAAS;AAAQ,aAAO,WAAW;AAAA,IAAE;AAAC,eAAW,YAAY,EAAC,SAAQ,MAAK,gBAAe,OAAM,gBAAe,MAAK;AAAovB,aAAS,WAAW,MAAM,EAAC,eAAa,IAAI,YAAY,oBAAoB,WAAS,MAAM,iBAAe,CAAC,EAAC,IAAE,CAAC,GAAE;AAAC,UAAI,UAAU;AAAK,UAAI,SAAS;AAAE,YAAM,aAAa,WAAW;AAAU,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,QAAQ,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,IAAI,GAAE;AAAC,YAAG,KAAK,OAAO,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,KAAI,GAAE,SAAQ,mCAAwC;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,gBAAgB,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,cAAa,GAAE,SAAQ,4CAAiD;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,cAAc,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,YAAW,GAAE,SAAQ,0CAA+C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,OAAO,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAG,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,IAAG;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,KAAK,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,wBAAuB,SAAQ,WAAU,QAAO,EAAC,SAAS,uBAAsB,GAAE,SAAQ,4CAAmD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,qBAAoB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,IAAI;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,IAAI;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,gBAAgB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAY,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,gBAAe,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,SAAS;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,OAAO,EAAC,cAAa,eAAa,gBAAe,YAAW,gDAA+C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,IAAI;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,IAAI;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,OAAO,EAAC,cAAa,eAAa,gBAAe,YAAW,6CAA4C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,IAAI;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,IAAI;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,WAAW;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,oDAAmD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,WAAW,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAO,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,WAAU,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,UAAU;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,WAAU,YAAW,gDAA+C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,WAAU,YAAW,6CAA4C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,YAAY;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,WAAU,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,aAAa,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,aAAa,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,aAAa,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,oDAAmD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,WAAU,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,iBAAiB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAa,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,iBAAgB,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,UAAU;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,iBAAgB,YAAW,gDAA+C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,iBAAgB,YAAW,6CAA4C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,YAAY;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,iBAAgB,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,mBAAmB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,mBAAmB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,mBAAmB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,oDAAmD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,iBAAgB,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,gBAAgB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAY,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,uCAAsC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,UAAU;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,+CAA8C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,4CAA2C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,UAAU,YAAY;AAAO,kBAAG,CAAC,SAAQ;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,uCAAsC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAK;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,wDAAuD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAI,GAAE,SAAQ,0CAAyC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,wDAAuD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,mDAAkD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,8BAA6B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAM,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,IAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,gCAA+B,SAAQ,aAAY,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,gCAA+B,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,2BAA0B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,cAAc,QAAU;AAAC,cAAI,SAAS,KAAK;AAAU,cAAG,OAAO,WAAW,UAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,MAAM,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,cAAa,YAAW,6BAA4B,SAAQ,WAAU,QAAO,EAAC,SAAS,6BAA4B,GAAE,SAAQ,kDAAyD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,cAAa,YAAW,0BAAyB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,YAAY,QAAU;AAAC,cAAI,SAAS,KAAK;AAAQ,gBAAM,UAAU;AAAO,cAAI,UAAU;AAAM,gBAAM,UAAU;AAAO,cAAG,OAAO,WAAW,UAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,MAAM,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,6BAA4B,SAAQ,WAAU,QAAO,EAAC,SAAS,6BAA4B,GAAE,SAAQ,kDAAyD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,0BAAyB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAC,cAAI,UAAU,YAAY;AAAO,oBAAU,WAAW;AAAQ,gBAAM,UAAU;AAAO,cAAG,WAAW,MAAK;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,qCAAoC,SAAQ,QAAO,QAAO,EAAC,MAAM,OAAM,GAAE,SAAQ,eAAc;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAC,cAAI,UAAU,YAAY;AAAO,oBAAU,WAAW;AAAQ,cAAG,CAAC,SAAQ;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,8BAA6B,SAAQ,SAAQ,QAAO,CAAC,GAAE,SAAQ,+BAA8B;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS,OAAM;AAAC,qBAAS;AAAQ,gBAAG,YAAY,MAAK;AAAC,kBAAG,SAAQ;AAAC,wBAAQ,SAAS;AAAA,cAAQ,OAAM;AAAC,0BAAU;AAAA,cAAK;AAAA,YAAC;AAAA,UAAC;AAAA,QAAC;AAAC,YAAG,KAAK,cAAc,QAAU;AAAC,cAAG,OAAO,KAAK,cAAc,WAAU;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,cAAa,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,UAAS,GAAE,SAAQ,kBAAiB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,QAAQ,QAAU;AAAC,cAAI,SAAS,KAAK;AAAI,cAAG,OAAO,WAAW,UAAS;AAAC,gBAAG,MAAM,MAAM,IAAI,MAAK;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,yBAAwB,SAAQ,aAAY,QAAO,EAAC,OAAO,KAAI,GAAE,SAAQ,0CAAyC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAE,SAAS,MAAM,GAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,sBAAqB,SAAQ,UAAS,QAAO,EAAC,QAAQ,MAAK,GAAE,SAAQ,0BAAiC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,oBAAmB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,cAAI,SAAS,KAAK;AAAM,cAAG,EAAI,OAAO,UAAU,aAAc,EAAE,SAAS,MAAM,CAAC,MAAM,MAAM,MAAQ,SAAS,MAAM,IAAI;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,2BAA0B,SAAQ,QAAO,QAAO,EAAC,MAAM,UAAS,GAAE,SAAQ,kBAAiB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAC,cAAI,OAAO,UAAU,YAAc,SAAS,MAAM,GAAG;AAAC,gBAAG,SAAS,KAAK,MAAM,MAAM,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,8BAA6B,SAAQ,WAAU,QAAO,EAAC,YAAY,MAAM,OAAO,EAAC,GAAE,SAAQ,eAAc;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC;AAAA,QAAC;AAAA,MAAC,OAAM;AAAC,cAAM,QAAQ,EAAC,cAAa,YAAW,UAAS,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,YAAG,YAAY,MAAK;AAAC,oBAAU,CAAC,KAAK;AAAA,QAAE,OAAM;AAAC,kBAAQ,KAAK,KAAK;AAAA,QAAE;AAAC;AAAA,MAAS;AAAC,iBAAW,SAAS;AAAQ,aAAO,WAAW;AAAA,IAAE;AAAC,eAAW,YAAY,EAAC,SAAQ,MAAK,gBAAe,OAAM,gBAAe,MAAK;AAAosB,aAAS,WAAW,MAAM,EAAC,eAAa,IAAI,YAAY,oBAAoB,WAAS,MAAM,iBAAe,CAAC,EAAC,IAAE,CAAC,GAAE;AAAC,UAAI,UAAU;AAAK,UAAI,SAAS;AAAE,YAAM,aAAa,WAAW;AAAU,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,QAAQ,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,IAAI,GAAE;AAAC,YAAG,KAAK,OAAO,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,KAAI,GAAE,SAAQ,mCAAwC;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,QAAO,GAAE,SAAQ,sCAA2C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,SAAS,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,OAAM,GAAE,SAAQ,qCAA0C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,OAAO,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAG,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,IAAG;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,KAAK,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,wBAAuB,SAAQ,WAAU,QAAO,EAAC,SAAS,uBAAsB,GAAE,SAAQ,4CAAmD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,qBAAoB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,IAAI;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,IAAI;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAM,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,UAAS,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,SAAS;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,OAAO,EAAC,cAAa,eAAa,UAAS,YAAW,gDAA+C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,IAAI;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,IAAI;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,OAAO,EAAC,cAAa,eAAa,UAAS,YAAW,6CAA4C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,IAAI;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,IAAI;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,WAAW;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,YAAY,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,YAAY,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,YAAY,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,oDAAmD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,cAAc,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAU,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,cAAa,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,UAAU;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,cAAa,YAAW,gDAA+C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,cAAa,YAAW,6CAA4C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,YAAY;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,cAAa,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAgB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAgB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAgB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,oDAAmD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,cAAa,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,gBAAgB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAY,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,uCAAsC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,UAAU;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,+CAA8C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,4CAA2C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,YAAY;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,uCAAsC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAK;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,wDAAuD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAI,GAAE,SAAQ,0CAAyC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,wDAAuD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,mDAAkD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,8BAA6B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,SAAS,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAK,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,KAAK,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,SAAQ,YAAW,6BAA4B,SAAQ,WAAU,QAAO,EAAC,SAAS,6BAA4B,GAAE,SAAQ,kDAAyD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,SAAQ,YAAW,0BAAyB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,QAAQ,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAI,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,MAAK;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,yBAAwB,SAAQ,aAAY,QAAO,EAAC,OAAO,KAAI,GAAE,SAAQ,0CAAyC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAE,SAAS,KAAK,GAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,sBAAqB,SAAQ,UAAS,QAAO,EAAC,QAAQ,MAAK,GAAE,SAAQ,0BAAiC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,oBAAmB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,QAAQ,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAI,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,8BAA6B,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,8BAA6B,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,yBAAwB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,cAAc,QAAU;AAAC,cAAI,SAAS,KAAK;AAAU,cAAG,MAAM,QAAQ,MAAM,GAAE;AAAC,gBAAG,OAAO,SAAS,IAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,cAAa,YAAW,mCAAkC,SAAQ,YAAW,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,mCAAkC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,kBAAM,OAAO,OAAO;AAAO,qBAAQ,KAAG,GAAG,KAAG,MAAM,MAAK;AAAC,kBAAI,SAAS,OAAO,EAAE;AAAE,kBAAG,OAAO,WAAW,UAAS;AAAC,oBAAG,MAAM,MAAM,IAAI,KAAI;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAgB,IAAG,YAAW,0CAAyC,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,MAAM,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAgB,IAAG,YAAW,0CAAyC,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAgB,IAAG,YAAW,qCAAoC,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,cAAa,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,QAAO,GAAE,SAAQ,gBAAe;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,cAAI,SAAS,KAAK;AAAM,cAAG,EAAI,OAAO,UAAU,aAAc,EAAE,SAAS,MAAM,CAAC,MAAM,MAAM,MAAQ,SAAS,MAAM,IAAI;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,2BAA0B,SAAQ,QAAO,QAAO,EAAC,MAAM,UAAS,GAAE,SAAQ,kBAAiB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAC,cAAI,OAAO,UAAU,YAAc,SAAS,MAAM,GAAG;AAAC,gBAAG,SAAS,KAAK,MAAM,MAAM,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,8BAA6B,SAAQ,WAAU,QAAO,EAAC,YAAY,MAAM,OAAO,EAAC,GAAE,SAAQ,eAAc;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC;AAAA,QAAC;AAAA,MAAC,OAAM;AAAC,cAAM,QAAQ,EAAC,cAAa,YAAW,UAAS,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,YAAG,YAAY,MAAK;AAAC,oBAAU,CAAC,KAAK;AAAA,QAAE,OAAM;AAAC,kBAAQ,KAAK,KAAK;AAAA,QAAE;AAAC;AAAA,MAAS;AAAC,iBAAW,SAAS;AAAQ,aAAO,WAAW;AAAA,IAAE;AAAC,eAAW,YAAY,EAAC,SAAQ,MAAK,gBAAe,OAAM,gBAAe,MAAK;AAAE,QAAM,YAAY,EAAC,QAAO,UAAS,wBAAuB,MAAK,YAAW,CAAC,MAAK,YAAW,aAAa,GAAE,cAAa,EAAC,MAAK,EAAC,QAAO,eAAc,GAAE,YAAW,EAAC,QAAO,oBAAmB,GAAE,eAAc,EAAC,QAAO,yBAAwB,GAAE,eAAc,EAAC,QAAO,UAAS,QAAO,CAAC,UAAS,UAAS,gBAAe,gBAAe,OAAO,GAAE,eAAc,2CAA0C,GAAE,SAAQ,EAAC,QAAO,WAAU,WAAU,EAAC,EAAC,EAAC;AAA+L,aAAS,WAAW,MAAM,EAAC,eAAa,IAAI,YAAY,oBAAoB,WAAS,MAAM,iBAAe,CAAC,EAAC,IAAE,CAAC,GAAE;AAAC,UAAI,UAAU;AAAK,UAAI,SAAS;AAAE,YAAM,aAAa,WAAW;AAAU,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,QAAQ,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,IAAI,GAAE;AAAC,YAAG,KAAK,OAAO,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,KAAI,GAAE,SAAQ,mCAAwC;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,aAAa,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,WAAU,GAAE,SAAQ,yCAA8C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,gBAAgB,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,cAAa,GAAE,SAAQ,4CAAiD;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,OAAO,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAG,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,IAAG;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,KAAK,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,wBAAuB,SAAQ,WAAU,QAAO,EAAC,SAAS,uBAAsB,GAAE,SAAQ,4CAAmD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,qBAAoB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,IAAI;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,IAAI;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,aAAa,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAS,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,IAAG;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,aAAY,YAAW,+BAA8B,SAAQ,aAAY,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,aAAY,YAAW,+BAA8B,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAC,SAAS,KAAK,KAAK,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,aAAY,YAAW,6BAA4B,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,2DAAkE;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,aAAY,YAAW,0BAAyB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,gBAAgB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAY,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,UAAU;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,gDAA+C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,6CAA4C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,YAAY;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,oDAAmD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,gBAAgB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAY,cAAG,OAAO,UAAU,UAAS;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,iCAAgC,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAC,cAAG,EAAM,UAAU,YAAc,UAAU,YAAe,UAAU,kBAAqB,UAAU,kBAAqB,UAAU,UAAU;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,iCAAgC,SAAQ,QAAO,QAAO,EAAC,eAAe,UAAU,WAAW,YAAY,KAAI,GAAE,SAAQ,6CAA4C;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAM,cAAG,EAAI,OAAO,SAAS,aAAc,EAAE,QAAQ,MAAM,CAAC,MAAM,KAAK,MAAQ,SAAS,KAAK,IAAI;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,2BAA0B,SAAQ,QAAO,QAAO,EAAC,MAAM,UAAS,GAAE,SAAQ,kBAAiB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAC,cAAI,OAAO,SAAS,YAAc,SAAS,KAAK,GAAG;AAAC,gBAAG,QAAQ,KAAK,MAAM,KAAK,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,8BAA6B,SAAQ,WAAU,QAAO,EAAC,YAAY,MAAM,OAAO,EAAC,GAAE,SAAQ,eAAc;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC;AAAA,QAAC;AAAA,MAAC,OAAM;AAAC,cAAM,QAAQ,EAAC,cAAa,YAAW,UAAS,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,YAAG,YAAY,MAAK;AAAC,oBAAU,CAAC,KAAK;AAAA,QAAE,OAAM;AAAC,kBAAQ,KAAK,KAAK;AAAA,QAAE;AAAC;AAAA,MAAS;AAAC,iBAAW,SAAS;AAAQ,aAAO,WAAW;AAAA,IAAE;AAAC,eAAW,YAAY,EAAC,SAAQ,MAAK,gBAAe,OAAM,gBAAe,MAAK;AAAglB,aAAS,WAAW,MAAM,EAAC,eAAa,IAAI,YAAY,oBAAoB,WAAS,MAAM,iBAAe,CAAC,EAAC,IAAE,CAAC,GAAE;AAAC,UAAI,UAAU;AAAK,UAAI,SAAS;AAAE,YAAM,aAAa,WAAW;AAAU,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,QAAQ,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,IAAI,GAAE;AAAC,YAAG,KAAK,OAAO,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,KAAI,GAAE,SAAQ,mCAAwC;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,QAAO,GAAE,SAAQ,sCAA2C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,OAAO,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAG,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,IAAG;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,KAAK,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,wBAAuB,SAAQ,WAAU,QAAO,EAAC,SAAS,uBAAsB,GAAE,SAAQ,4CAAmD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,qBAAoB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,IAAI;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,IAAI;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAM,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,UAAS,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,SAAS;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,OAAO,EAAC,cAAa,eAAa,UAAS,YAAW,gDAA+C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,IAAI;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,IAAI;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,OAAO,EAAC,cAAa,eAAa,UAAS,YAAW,6CAA4C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,IAAI;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,IAAI;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,WAAW;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,OAAO,EAAC,cAAa,eAAa,UAAS,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,IAAI;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,IAAI;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,YAAY,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,YAAY,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,YAAY,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,oDAAmD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,aAAa,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAS,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,aAAY,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,UAAU;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,aAAY,YAAW,gDAA+C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,aAAY,YAAW,6CAA4C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,YAAY;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,aAAY,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,eAAe,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,eAAe,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,eAAe,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,oDAAmD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,aAAY,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,iBAAiB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAa,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,IAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,iBAAgB,YAAW,uCAAsC,SAAQ,aAAY,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,iBAAgB,YAAW,uCAAsC,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,iBAAgB,YAAW,kCAAiC,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,gBAAgB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAY,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,uCAAsC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,UAAU;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,+CAA8C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,4CAA2C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,YAAY;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,uCAAsC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAK;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,wDAAuD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAI,GAAE,SAAQ,0CAAyC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,wDAAuD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,mDAAkD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,8BAA6B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,mBAAmB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAe,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,KAAK,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,mBAAkB,YAAW,6BAA4B,SAAQ,WAAU,QAAO,EAAC,SAAS,6BAA4B,GAAE,SAAQ,kDAAyD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,mBAAkB,YAAW,0BAAyB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,mBAAmB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAe,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,MAAK;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,mBAAkB,YAAW,yBAAwB,SAAQ,aAAY,QAAO,EAAC,OAAO,KAAI,GAAE,SAAQ,0CAAyC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAE,SAAS,KAAK,GAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,mBAAkB,YAAW,sBAAqB,SAAQ,UAAS,QAAO,EAAC,QAAQ,MAAK,GAAE,SAAQ,0BAAiC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,mBAAkB,YAAW,oBAAmB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,uBAAuB,QAAU;AAAC,cAAI,SAAS,KAAK;AAAmB,cAAG,OAAO,WAAW,UAAS;AAAC,gBAAG,MAAM,MAAM,IAAI,IAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,uBAAsB,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,MAAM,IAAI,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,uBAAsB,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,MAAM,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,uBAAsB,YAAW,wBAAuB,SAAQ,WAAU,QAAO,EAAC,SAAS,uBAAsB,GAAE,SAAQ,4CAAmD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,uBAAsB,YAAW,qBAAoB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,cAAI,SAAS,KAAK;AAAM,cAAG,EAAI,OAAO,UAAU,aAAc,EAAE,SAAS,MAAM,CAAC,MAAM,MAAM,MAAQ,SAAS,MAAM,IAAI;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,2BAA0B,SAAQ,QAAO,QAAO,EAAC,MAAM,UAAS,GAAE,SAAQ,kBAAiB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAC,cAAI,OAAO,UAAU,YAAc,SAAS,MAAM,GAAG;AAAC,gBAAG,SAAS,KAAK,MAAM,MAAM,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,8BAA6B,SAAQ,WAAU,QAAO,EAAC,YAAY,MAAM,OAAO,EAAC,GAAE,SAAQ,eAAc;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC;AAAA,QAAC;AAAA,MAAC,OAAM;AAAC,cAAM,QAAQ,EAAC,cAAa,YAAW,UAAS,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,YAAG,YAAY,MAAK;AAAC,oBAAU,CAAC,KAAK;AAAA,QAAE,OAAM;AAAC,kBAAQ,KAAK,KAAK;AAAA,QAAE;AAAC;AAAA,MAAS;AAAC,iBAAW,SAAS;AAAQ,aAAO,WAAW;AAAA,IAAE;AAAC,eAAW,YAAY,EAAC,SAAQ,MAAK,gBAAe,OAAM,gBAAe,MAAK;AAAE,QAAM,YAAY,EAAC,QAAO,UAAS,wBAAuB,MAAK,YAAW,CAAC,MAAK,SAAQ,gBAAe,QAAQ,GAAE,cAAa,EAAC,MAAK,EAAC,QAAO,eAAc,GAAE,SAAQ,EAAC,QAAO,yBAAwB,GAAE,gBAAe,EAAC,QAAO,UAAS,aAAY,GAAE,aAAY,IAAG,GAAE,UAAS,EAAC,QAAO,UAAS,aAAY,KAAI,eAAc,mDAAkD,GAAE,UAAS,EAAC,QAAO,UAAS,QAAO,CAAC,WAAU,UAAS,WAAU,WAAW,EAAC,GAAE,eAAc,EAAC,QAAO,wBAAuB,GAAE,cAAa,EAAC,QAAO,oBAAmB,GAAE,aAAY,EAAC,QAAO,oBAAmB,GAAE,OAAM,EAAC,QAAO,cAAa,GAAE,eAAc,EAAC,QAAO,SAAQ,YAAW,IAAG,SAAQ,EAAC,QAAO,UAAS,aAAY,GAAE,aAAY,IAAG,EAAC,GAAE,SAAQ,EAAC,QAAO,WAAU,WAAU,EAAC,EAAC,EAAC;AAAE,aAAS,WAAW,MAAM,EAAC,eAAa,IAAI,YAAY,oBAAoB,WAAS,MAAM,iBAAe,CAAC,EAAC,IAAE,CAAC,GAAE;AAAC,UAAI,UAAU;AAAK,UAAI,SAAS;AAAE,YAAM,aAAa,WAAW;AAAU,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,QAAQ,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,IAAI,GAAE;AAAC,YAAG,KAAK,OAAO,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,KAAI,GAAE,SAAQ,mCAAwC;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,QAAO,GAAE,SAAQ,sCAA2C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,iBAAiB,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,eAAc,GAAE,SAAQ,6CAAkD;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,WAAW,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,SAAQ,GAAE,SAAQ,uCAA4C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,OAAO,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAG,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,IAAG;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,KAAK,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,wBAAuB,SAAQ,WAAU,QAAO,EAAC,SAAS,uBAAsB,GAAE,SAAQ,4CAAmD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,qBAAoB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,IAAI;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,IAAI;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAM,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,UAAS,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,SAAS;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,OAAO,EAAC,cAAa,eAAa,UAAS,YAAW,gDAA+C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,IAAI;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,IAAI;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,6CAA4C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,WAAW;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,YAAY,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,YAAY,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,YAAY,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,oDAAmD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,iBAAiB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAa,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,iBAAgB,YAAW,uCAAsC,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,iBAAgB,YAAW,uCAAsC,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,iBAAgB,YAAW,kCAAiC,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,WAAW,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAO,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,WAAU,YAAW,iCAAgC,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,WAAU,YAAW,4BAA2B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,WAAW,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAO,cAAG,OAAO,UAAU,UAAS;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,WAAU,YAAW,4BAA2B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAC,cAAG,EAAK,UAAU,aAAe,UAAU,YAAe,UAAU,aAAgB,UAAU,cAAc;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,WAAU,YAAW,4BAA2B,SAAQ,QAAO,QAAO,EAAC,eAAe,UAAU,WAAW,OAAO,KAAI,GAAE,SAAQ,6CAA4C;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,gBAAgB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAY,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,uCAAsC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,UAAU;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,+CAA8C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,4CAA2C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,YAAY;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,uCAAsC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAK;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,wDAAuD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAI,GAAE,SAAQ,0CAAyC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,wDAAuD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,mDAAkD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,8BAA6B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,eAAe,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAW,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,KAAK,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,eAAc,YAAW,6BAA4B,SAAQ,WAAU,QAAO,EAAC,SAAS,6BAA4B,GAAE,SAAQ,kDAAyD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,eAAc,YAAW,0BAAyB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,cAAc,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAU,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,KAAK,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,cAAa,YAAW,6BAA4B,SAAQ,WAAU,QAAO,EAAC,SAAS,6BAA4B,GAAE,SAAQ,kDAAyD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,cAAa,YAAW,0BAAyB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,QAAQ,QAAU;AAAC,cAAI,SAAS,KAAK;AAAI,cAAG,OAAO,WAAW,UAAS;AAAC,gBAAG,MAAM,MAAM,IAAI,MAAK;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,yBAAwB,SAAQ,aAAY,QAAO,EAAC,OAAO,KAAI,GAAE,SAAQ,0CAAyC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAE,SAAS,MAAM,GAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,sBAAqB,SAAQ,UAAS,QAAO,EAAC,QAAQ,MAAK,GAAE,SAAQ,0BAAiC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,oBAAmB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,gBAAgB,QAAU;AAAC,cAAI,SAAS,KAAK;AAAY,cAAG,MAAM,QAAQ,MAAM,GAAE;AAAC,gBAAG,OAAO,SAAS,IAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,qCAAoC,SAAQ,YAAW,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,mCAAkC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,kBAAM,OAAO,OAAO;AAAO,qBAAQ,KAAG,GAAG,KAAG,MAAM,MAAK;AAAC,kBAAI,SAAS,OAAO,EAAE;AAAE,kBAAG,OAAO,WAAW,UAAS;AAAC,oBAAG,MAAM,MAAM,IAAI,KAAI;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,IAAG,YAAW,4CAA2C,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,MAAM,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,IAAG,YAAW,4CAA2C,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,IAAG,YAAW,uCAAsC,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,iCAAgC,SAAQ,QAAO,QAAO,EAAC,MAAM,QAAO,GAAE,SAAQ,gBAAe;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,cAAI,SAAS,KAAK;AAAM,cAAG,EAAI,OAAO,UAAU,aAAc,EAAE,SAAS,MAAM,CAAC,MAAM,MAAM,MAAQ,SAAS,MAAM,IAAI;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,2BAA0B,SAAQ,QAAO,QAAO,EAAC,MAAM,UAAS,GAAE,SAAQ,kBAAiB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAC,cAAI,OAAO,UAAU,YAAc,SAAS,MAAM,GAAG;AAAC,gBAAG,SAAS,KAAK,MAAM,MAAM,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,8BAA6B,SAAQ,WAAU,QAAO,EAAC,YAAY,MAAM,OAAO,EAAC,GAAE,SAAQ,eAAc;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC;AAAA,QAAC;AAAA,MAAC,OAAM;AAAC,cAAM,QAAQ,EAAC,cAAa,YAAW,UAAS,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,YAAG,YAAY,MAAK;AAAC,oBAAU,CAAC,KAAK;AAAA,QAAE,OAAM;AAAC,kBAAQ,KAAK,KAAK;AAAA,QAAE;AAAC;AAAA,MAAS;AAAC,iBAAW,SAAS;AAAQ,aAAO,WAAW;AAAA,IAAE;AAAC,eAAW,YAAY,EAAC,SAAQ,MAAK,gBAAe,OAAM,gBAAe,MAAK;AAAsqB,aAAS,WAAW,MAAM,EAAC,eAAa,IAAI,YAAY,oBAAoB,WAAS,MAAM,iBAAe,CAAC,EAAC,IAAE,CAAC,GAAE;AAAC,UAAI,UAAU;AAAK,UAAI,SAAS;AAAE,YAAM,aAAa,WAAW;AAAU,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,QAAQ,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,IAAI,GAAE;AAAC,YAAG,KAAK,OAAO,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,KAAI,GAAE,SAAQ,mCAAwC;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,QAAO,GAAE,SAAQ,sCAA2C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,QAAO,GAAE,SAAQ,sCAA2C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,SAAS,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,OAAM,GAAE,SAAQ,qCAA0C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,OAAO,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAG,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,IAAG;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,KAAK,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,wBAAuB,SAAQ,WAAU,QAAO,EAAC,SAAS,uBAAsB,GAAE,SAAQ,4CAAmD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,qBAAoB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,IAAI;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,IAAI;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAM,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,UAAS,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,SAAS;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,OAAO,EAAC,cAAa,eAAa,UAAS,YAAW,gDAA+C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,IAAI;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,IAAI;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,6CAA4C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,WAAW;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,YAAY,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,YAAY,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,YAAY,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,oDAAmD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAM,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,IAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,gCAA+B,SAAQ,aAAY,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,gCAA+B,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,2BAA0B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,SAAS,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAK,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,KAAK,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,SAAQ,YAAW,6BAA4B,SAAQ,WAAU,QAAO,EAAC,SAAS,6BAA4B,GAAE,SAAQ,kDAAyD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,SAAQ,YAAW,0BAAyB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,uBAAuB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAmB,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,IAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,uBAAsB,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,uBAAsB,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,KAAK,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,uBAAsB,YAAW,wBAAuB,SAAQ,WAAU,QAAO,EAAC,SAAS,uBAAsB,GAAE,SAAQ,4CAAmD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,uBAAsB,YAAW,qBAAoB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,gBAAgB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAY,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,uCAAsC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,UAAU;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,+CAA8C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,4CAA2C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,YAAY;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,uCAAsC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAK;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,wDAAuD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAI,GAAE,SAAQ,0CAAyC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,wDAAuD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAkB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,mDAAkD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,8BAA6B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,QAAQ,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAI,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,MAAK;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,yBAAwB,SAAQ,aAAY,QAAO,EAAC,OAAO,KAAI,GAAE,SAAQ,0CAAyC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAE,SAAS,KAAK,GAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,sBAAqB,SAAQ,UAAS,QAAO,EAAC,QAAQ,MAAK,GAAE,SAAQ,0BAAiC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,oBAAmB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAM,cAAG,EAAI,OAAO,SAAS,aAAc,EAAE,QAAQ,MAAM,CAAC,MAAM,KAAK,MAAQ,SAAS,KAAK,IAAI;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,2BAA0B,SAAQ,QAAO,QAAO,EAAC,MAAM,UAAS,GAAE,SAAQ,kBAAiB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAC,cAAI,OAAO,SAAS,YAAc,SAAS,KAAK,GAAG;AAAC,gBAAG,QAAQ,KAAK,MAAM,KAAK,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,8BAA6B,SAAQ,WAAU,QAAO,EAAC,YAAY,MAAM,OAAO,EAAC,GAAE,SAAQ,eAAc;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC;AAAA,QAAC;AAAA,MAAC,OAAM;AAAC,cAAM,QAAQ,EAAC,cAAa,YAAW,UAAS,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,YAAG,YAAY,MAAK;AAAC,oBAAU,CAAC,KAAK;AAAA,QAAE,OAAM;AAAC,kBAAQ,KAAK,KAAK;AAAA,QAAE;AAAC;AAAA,MAAS;AAAC,iBAAW,SAAS;AAAQ,aAAO,WAAW;AAAA,IAAE;AAAC,eAAW,YAAY,EAAC,SAAQ,MAAK,gBAAe,OAAM,gBAAe,MAAK;AAAqvC,aAAS,WAAW,MAAM,EAAC,eAAa,IAAI,YAAY,oBAAoB,WAAS,MAAM,iBAAe,CAAC,EAAC,IAAE,CAAC,GAAE;AAAC,UAAI,UAAU;AAAK,UAAI,SAAS;AAAE,YAAM,aAAa,WAAW;AAAU,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,QAAQ,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,IAAI,GAAE;AAAC,YAAG,KAAK,SAAS,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,OAAM,GAAE,SAAQ,qCAA0C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,SAAS,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAK,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,SAAQ,YAAW,+BAA8B,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,SAAQ,YAAW,+BAA8B,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,OAAO,EAAC,cAAa,eAAa,SAAQ,YAAW,0BAAyB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,IAAI;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,IAAI;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,aAAa,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAS,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,aAAY,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,SAAS;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,OAAO,EAAC,cAAa,eAAa,aAAY,YAAW,gDAA+C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,IAAI;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,IAAI;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,OAAO,EAAC,cAAa,eAAa,aAAY,YAAW,6CAA4C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,IAAI;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,IAAI;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,WAAW;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,OAAO,EAAC,cAAa,eAAa,aAAY,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,IAAI;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,IAAI;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,wBAAM,OAAO,EAAC,cAAa,eAAa,eAAe,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,IAAI;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,IAAI;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,OAAO,EAAC,cAAa,eAAa,eAAe,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,IAAI;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,IAAI;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,eAAe,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,oDAAmD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,aAAY,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,QAAQ,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAI,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,MAAK;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,yBAAwB,SAAQ,aAAY,QAAO,EAAC,OAAO,KAAI,GAAE,SAAQ,0CAAyC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAE,SAAS,KAAK,GAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,sBAAqB,SAAQ,UAAS,QAAO,EAAC,QAAQ,MAAK,GAAE,SAAQ,0BAAiC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,QAAO,YAAW,oBAAmB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAA,MAAC,OAAM;AAAC,cAAM,QAAQ,EAAC,cAAa,YAAW,UAAS,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,YAAG,YAAY,MAAK;AAAC,oBAAU,CAAC,KAAK;AAAA,QAAE,OAAM;AAAC,kBAAQ,KAAK,KAAK;AAAA,QAAE;AAAC;AAAA,MAAS;AAAC,iBAAW,SAAS;AAAQ,aAAO,WAAW;AAAA,IAAE;AAAC,eAAW,YAAY,EAAC,SAAQ,MAAK,gBAAe,OAAM,gBAAe,MAAK;AAAE,aAAS,WAAW,MAAM,EAAC,eAAa,IAAI,YAAY,oBAAoB,WAAS,MAAM,iBAAe,CAAC,EAAC,IAAE,CAAC,GAAE;AAAC,UAAI,UAAU;AAAK,UAAI,SAAS;AAAE,YAAM,aAAa,WAAW;AAAU,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,QAAQ,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,IAAI,GAAE;AAAC,YAAG,KAAK,OAAO,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,KAAI,GAAE,SAAQ,mCAAwC;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,SAAS,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,OAAM,GAAE,SAAQ,qCAA0C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,WAAW,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,SAAQ,GAAE,SAAQ,uCAA4C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,OAAO,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAG,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,IAAG;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,KAAK,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,wBAAuB,SAAQ,WAAU,QAAO,EAAC,SAAS,uBAAsB,GAAE,SAAQ,4CAAmD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,OAAO,EAAC,cAAa,eAAa,OAAM,YAAW,qBAAoB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,IAAI;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,IAAI;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,SAAS,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAK,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,SAAQ,YAAW,uCAAsC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,SAAS;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,OAAO,EAAC,cAAa,eAAa,SAAQ,YAAW,+CAA8C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,IAAI;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,IAAI;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,OAAO,EAAC,cAAa,eAAa,SAAQ,YAAW,4CAA2C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,IAAI;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,IAAI;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,WAAW;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,SAAQ,YAAW,uCAAsC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAK;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,WAAW,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,wDAAuD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAI,GAAE,SAAQ,0CAAyC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,WAAW,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,wDAAuD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,WAAW,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,mDAAkD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,SAAQ,YAAW,8BAA6B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,WAAW,QAAU;AAAC,cAAG,CAAE,WAAW,KAAK,QAAQ,EAAC,cAAa,eAAa,WAAU,YAAW,MAAK,oBAAmB,UAAS,UAAS,eAAc,CAAC,GAAG;AAAC,sBAAU,YAAY,OAAO,WAAW,SAAS,QAAQ,OAAO,WAAW,MAAM;AAAE,qBAAS,QAAQ;AAAA,UAAO;AAAA,QAAC;AAAC,YAAG,KAAK,iBAAiB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAa,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,OAAO,KAAK,KAAK,EAAE,SAAS,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,iBAAgB,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,uBAAU,QAAQ,OAAM;AAAC,oBAAM,UAAU;AAAO,kBAAG,OAAO,SAAS,UAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,iBAAgB,YAAW,gDAA+C,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,4DAAmE,cAAa,KAAI;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,iBAAgB,YAAW,6CAA4C,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,kBAAiB,cAAa,KAAI;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,SAAS,YAAY;AAAO,kBAAG,CAAC,QAAO;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,iBAAgB,YAAW,wCAAuC,SAAQ,iBAAgB,QAAO,EAAC,cAAc,KAAI,GAAE,SAAQ,8BAA6B;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAI,QAAQ,MAAM,IAAI;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,mBAAmB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,mBAAmB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,yDAAwD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,mBAAmB,KAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI,GAAE,YAAW,oDAAmD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,iBAAgB,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,SAAS,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAK,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,KAAK,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,SAAQ,YAAW,6BAA4B,SAAQ,WAAU,QAAO,EAAC,SAAS,6BAA4B,GAAE,SAAQ,kDAAyD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,SAAQ,YAAW,0BAAyB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,oBAAoB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAgB,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,IAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,oBAAmB,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,oBAAmB,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,KAAK,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,oBAAmB,YAAW,wBAAuB,SAAQ,WAAU,QAAO,EAAC,SAAS,uBAAsB,GAAE,SAAQ,4CAAmD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,oBAAmB,YAAW,qBAAoB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,uBAAuB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAmB,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,IAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,uBAAsB,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,uBAAsB,YAAW,0BAAyB,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAC,UAAU,KAAK,KAAK,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,uBAAsB,YAAW,wBAAuB,SAAQ,WAAU,QAAO,EAAC,SAAS,uBAAsB,GAAE,SAAQ,4CAAmD;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,uBAAsB,YAAW,qBAAoB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAM,cAAG,EAAI,OAAO,SAAS,aAAc,EAAE,QAAQ,MAAM,CAAC,MAAM,KAAK,MAAQ,SAAS,KAAK,IAAI;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,2BAA0B,SAAQ,QAAO,QAAO,EAAC,MAAM,UAAS,GAAE,SAAQ,kBAAiB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAC,cAAI,OAAO,SAAS,YAAc,SAAS,KAAK,GAAG;AAAC,gBAAG,QAAQ,KAAK,MAAM,KAAK,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,8BAA6B,SAAQ,WAAU,QAAO,EAAC,YAAY,MAAM,OAAO,EAAC,GAAE,SAAQ,eAAc;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC;AAAA,QAAC;AAAA,MAAC,OAAM;AAAC,cAAM,QAAQ,EAAC,cAAa,YAAW,UAAS,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,YAAG,YAAY,MAAK;AAAC,oBAAU,CAAC,KAAK;AAAA,QAAE,OAAM;AAAC,kBAAQ,KAAK,KAAK;AAAA,QAAE;AAAC;AAAA,MAAS;AAAC,iBAAW,SAAS;AAAQ,aAAO,WAAW;AAAA,IAAE;AAAC,eAAW,YAAY,EAAC,SAAQ,MAAK,gBAAe,OAAM,gBAAe,MAAK;AAAuQ,QAAM,YAAY;AAA2I,aAAS,WAAW,MAAM,EAAC,eAAa,IAAI,YAAY,oBAAoB,WAAS,MAAM,iBAAe,CAAC,EAAC,IAAE,CAAC,GAAE;AAAC,UAAI,UAAU;AAAK,UAAI,SAAS;AAAE,YAAM,aAAa,WAAW;AAAU,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,QAAQ,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,IAAI,GAAE;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAM,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,UAAS,YAAW,2BAA0B,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAE,UAAU,KAAK,KAAK,GAAG;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,UAAS,YAAW,wBAAuB,SAAQ,UAAS,QAAO,EAAC,QAAQ,QAAO,GAAE,SAAQ,4BAAmC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,OAAO,EAAC,cAAa,eAAa,UAAS,YAAW,sBAAqB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,IAAI;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,IAAI;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,cAAc,QAAU;AAAC,cAAG,OAAO,KAAK,cAAc,WAAU;AAAC,kBAAM,OAAO,EAAC,cAAa,eAAa,cAAa,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,UAAS,GAAE,SAAQ,kBAAiB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,IAAI;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,IAAI;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,YAAY,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAQ,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,MAAK;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,YAAW,YAAW,yBAAwB,SAAQ,aAAY,QAAO,EAAC,OAAO,KAAI,GAAE,SAAQ,0CAAyC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAE,SAAS,KAAK,GAAG;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,YAAW,YAAW,sBAAqB,SAAQ,UAAS,QAAO,EAAC,QAAQ,MAAK,GAAE,SAAQ,0BAAiC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,OAAO,EAAC,cAAa,eAAa,YAAW,YAAW,oBAAmB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,IAAI;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,IAAI;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAA,MAAC,OAAM;AAAC,cAAM,OAAO,EAAC,cAAa,YAAW,UAAS,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,YAAG,YAAY,MAAK;AAAC,oBAAU,CAAC,IAAI;AAAA,QAAE,OAAM;AAAC,kBAAQ,KAAK,IAAI;AAAA,QAAE;AAAC;AAAA,MAAS;AAAC,iBAAW,SAAS;AAAQ,aAAO,WAAW;AAAA,IAAE;AAAC,eAAW,YAAY,EAAC,SAAQ,MAAK,gBAAe,OAAM,gBAAe,MAAK;AAAs9E,QAAM,QAAQ,gBAAkC;AAAQ,aAAS,WAAW,MAAM,EAAC,eAAa,IAAI,YAAY,oBAAoB,WAAS,MAAM,iBAAe,CAAC,EAAC,IAAE,CAAC,GAAE;AAAC,UAAI,UAAU;AAAK,UAAI,SAAS;AAAE,YAAM,aAAa,WAAW;AAAU,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,QAAQ,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,IAAI,GAAE;AAAC,YAAG,KAAK,kBAAkB,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,gBAAe,GAAE,SAAQ,8CAAmD;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,qBAAqB,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,mBAAkB,GAAE,SAAQ,iDAAsD;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,kBAAkB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAc,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,IAAG;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,kBAAiB,YAAW,+BAA8B,SAAQ,aAAY,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,kBAAiB,YAAW,+BAA8B,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAC,SAAS,KAAK,KAAK,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,kBAAiB,YAAW,6BAA4B,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,2DAAkE;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,OAAO,EAAC,cAAa,eAAa,kBAAiB,YAAW,0BAAyB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,IAAI;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,IAAI;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,mBAAmB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAe,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,IAAG;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,mBAAkB,YAAW,+BAA8B,SAAQ,aAAY,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,mBAAkB,YAAW,+BAA8B,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAC,SAAS,KAAK,KAAK,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,mBAAkB,YAAW,6BAA4B,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,2DAAkE;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,OAAO,EAAC,cAAa,eAAa,mBAAkB,YAAW,0BAAyB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,IAAI;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,IAAI;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,qBAAqB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAiB,cAAG,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,MAAM,SAAS,IAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,qBAAoB,YAAW,0CAAyC,SAAQ,YAAW,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,mCAAkC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,SAAS,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,qBAAoB,YAAW,0CAAyC,SAAQ,YAAW,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,mCAAkC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,kBAAM,OAAO,MAAM;AAAO,qBAAQ,KAAG,GAAG,KAAG,MAAM,MAAK;AAAC,kBAAI,QAAQ,MAAM,EAAE;AAAE,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,IAAG;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,uBAAuB,IAAG,YAAW,+BAA8B,SAAQ,aAAY,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,uBAAuB,IAAG,YAAW,+BAA8B,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,CAAC,SAAS,KAAK,KAAK,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,uBAAuB,IAAG,YAAW,6BAA4B,SAAQ,WAAU,QAAO,EAAC,SAAS,sCAAqC,GAAE,SAAQ,2DAAkE;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,uBAAuB,IAAG,YAAW,0BAAyB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,gBAAI,KAAK,MAAM;AAAO,gBAAI;AAAG,gBAAG,KAAK,GAAE;AAAC,qBAAO,QAAK,QAAM;AAAC,qBAAI,KAAK,IAAI,QAAM;AAAC,sBAAG,MAAM,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,GAAE;AAAC,0BAAM,QAAQ,EAAC,cAAa,eAAa,qBAAoB,YAAW,6CAA4C,SAAQ,eAAc,QAAO,EAAC,GAAG,IAAI,GAAG,GAAE,GAAE,SAAQ,6CAA2C,KAAG,UAAQ,KAAG,kBAAiB;AAAE,wBAAG,YAAY,MAAK;AAAC,gCAAU,CAAC,KAAK;AAAA,oBAAE,OAAM;AAAC,8BAAQ,KAAK,KAAK;AAAA,oBAAE;AAAC;AAAS,0BAAM;AAAA,kBAAO;AAAA,gBAAC;AAAA,cAAC;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,qBAAoB,YAAW,sCAAqC,SAAQ,QAAO,QAAO,EAAC,MAAM,QAAO,GAAE,SAAQ,gBAAe;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAM,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,IAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,gCAA+B,SAAQ,aAAY,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,gCAA+B,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,2BAA0B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,kBAAkB,QAAU;AAAC,cAAG,OAAO,KAAK,kBAAkB,WAAU;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAiB,YAAW,mCAAkC,SAAQ,QAAO,QAAO,EAAC,MAAM,UAAS,GAAE,SAAQ,kBAAiB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,iBAAiB,QAAU;AAAC,cAAG,OAAO,KAAK,iBAAiB,WAAU;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,iBAAgB,YAAW,kCAAiC,SAAQ,QAAO,QAAO,EAAC,MAAM,UAAS,GAAE,SAAQ,kBAAiB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,cAAc,QAAU;AAAC,cAAG,OAAO,KAAK,cAAc,WAAU;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,cAAa,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,UAAS,GAAE,SAAQ,kBAAiB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,oBAAoB,QAAU;AAAC,cAAG,OAAO,KAAK,oBAAoB,WAAU;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,oBAAmB,YAAW,qCAAoC,SAAQ,QAAO,QAAO,EAAC,MAAM,UAAS,GAAE,SAAQ,kBAAiB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,aAAa,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAS,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAG,EAAM,SAAS,aAAe,SAAS,YAAe,SAAS,cAAiB,SAAS,cAAiB,SAAS,qBAAqB;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,aAAY,YAAW,iDAAgD,SAAQ,wBAAuB,QAAO,EAAC,oBAAoB,KAAI,GAAE,SAAQ,sCAAqC;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,gBAAG,MAAM,YAAY,QAAU;AAAC,kBAAG,OAAO,MAAM,YAAY,WAAU;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,qBAAoB,YAAW,oDAAmD,SAAQ,QAAO,QAAO,EAAC,MAAM,UAAS,GAAE,SAAQ,kBAAiB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,gBAAG,MAAM,WAAW,QAAU;AAAC,kBAAI,SAAS,MAAM;AAAO,kBAAG,UAAU,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,MAAM,GAAE;AAAC,oBAAG,OAAO,aAAa,QAAU;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,oBAAmB,YAAW,uDAAsD,SAAQ,YAAW,QAAO,EAAC,iBAAiB,WAAU,GAAE,SAAQ,yCAA8C;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,2BAAU,QAAQ,QAAO;AAAC,sBAAG,EAAI,SAAS,cAAgB,SAAS,mBAAsB,SAAS,sBAAsB;AAAC,0BAAM,QAAQ,EAAC,cAAa,eAAa,oBAAmB,YAAW,mEAAkE,SAAQ,wBAAuB,QAAO,EAAC,oBAAoB,KAAI,GAAE,SAAQ,sCAAqC;AAAE,wBAAG,YAAY,MAAK;AAAC,gCAAU,CAAC,KAAK;AAAA,oBAAE,OAAM;AAAC,8BAAQ,KAAK,KAAK;AAAA,oBAAE;AAAC;AAAA,kBAAS;AAAA,gBAAC;AAAC,oBAAG,OAAO,aAAa,QAAU;AAAC,sBAAI,SAAS,OAAO;AAAS,sBAAG,OAAO,WAAW,UAAS;AAAC,wBAAG,MAAM,MAAM,IAAI,IAAG;AAAC,4BAAM,QAAQ,EAAC,cAAa,eAAa,6BAA4B,YAAW,4EAA2E,SAAQ,aAAY,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,wCAAuC;AAAE,0BAAG,YAAY,MAAK;AAAC,kCAAU,CAAC,KAAK;AAAA,sBAAE,OAAM;AAAC,gCAAQ,KAAK,KAAK;AAAA,sBAAE;AAAC;AAAA,oBAAS;AAAC,wBAAG,MAAM,MAAM,IAAI,GAAE;AAAC,4BAAM,QAAQ,EAAC,cAAa,eAAa,6BAA4B,YAAW,4EAA2E,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,0BAAG,YAAY,MAAK;AAAC,kCAAU,CAAC,KAAK;AAAA,sBAAE,OAAM;AAAC,gCAAQ,KAAK,KAAK;AAAA,sBAAE;AAAC;AAAA,oBAAS;AAAA,kBAAC,OAAM;AAAC,0BAAM,QAAQ,EAAC,cAAa,eAAa,6BAA4B,YAAW,uEAAsE,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,wBAAG,YAAY,MAAK;AAAC,gCAAU,CAAC,KAAK;AAAA,oBAAE,OAAM;AAAC,8BAAQ,KAAK,KAAK;AAAA,oBAAE;AAAC;AAAA,kBAAS;AAAA,gBAAC;AAAC,oBAAG,OAAO,kBAAkB,QAAU;AAAC,sBAAG,OAAO,OAAO,kBAAkB,WAAU;AAAC,0BAAM,QAAQ,EAAC,cAAa,eAAa,kCAAiC,YAAW,4EAA2E,SAAQ,QAAO,QAAO,EAAC,MAAM,UAAS,GAAE,SAAQ,kBAAiB;AAAE,wBAAG,YAAY,MAAK;AAAC,gCAAU,CAAC,KAAK;AAAA,oBAAE,OAAM;AAAC,8BAAQ,KAAK,KAAK;AAAA,oBAAE;AAAC;AAAA,kBAAS;AAAA,gBAAC;AAAC,oBAAG,OAAO,sBAAsB,QAAU;AAAC,sBAAG,OAAO,OAAO,sBAAsB,WAAU;AAAC,0BAAM,QAAQ,EAAC,cAAa,eAAa,sCAAqC,YAAW,gFAA+E,SAAQ,QAAO,QAAO,EAAC,MAAM,UAAS,GAAE,SAAQ,kBAAiB;AAAE,wBAAG,YAAY,MAAK;AAAC,gCAAU,CAAC,KAAK;AAAA,oBAAE,OAAM;AAAC,8BAAQ,KAAK,KAAK;AAAA,oBAAE;AAAC;AAAA,kBAAS;AAAA,gBAAC;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,oBAAmB,YAAW,mDAAkD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,gBAAG,MAAM,aAAa,QAAU;AAAC,kBAAI,SAAS,MAAM;AAAS,kBAAG,UAAU,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,MAAM,GAAE;AAAC,oBAAG,OAAO,aAAa,QAAU;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,sBAAqB,YAAW,yDAAwD,SAAQ,YAAW,QAAO,EAAC,iBAAiB,WAAU,GAAE,SAAQ,yCAA8C;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,2BAAU,QAAQ,QAAO;AAAC,sBAAG,EAAG,SAAS,cAAgB,SAAS,mBAAmB;AAAC,0BAAM,QAAQ,EAAC,cAAa,eAAa,sBAAqB,YAAW,qEAAoE,SAAQ,wBAAuB,QAAO,EAAC,oBAAoB,KAAI,GAAE,SAAQ,sCAAqC;AAAE,wBAAG,YAAY,MAAK;AAAC,gCAAU,CAAC,KAAK;AAAA,oBAAE,OAAM;AAAC,8BAAQ,KAAK,KAAK;AAAA,oBAAE;AAAC;AAAA,kBAAS;AAAA,gBAAC;AAAC,oBAAG,OAAO,aAAa,QAAU;AAAC,sBAAI,SAAS,OAAO;AAAS,sBAAG,OAAO,WAAW,UAAS;AAAC,wBAAG,MAAM,MAAM,IAAI,KAAI;AAAC,4BAAM,QAAQ,EAAC,cAAa,eAAa,+BAA8B,YAAW,8EAA6E,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,0BAAG,YAAY,MAAK;AAAC,kCAAU,CAAC,KAAK;AAAA,sBAAE,OAAM;AAAC,gCAAQ,KAAK,KAAK;AAAA,sBAAE;AAAC;AAAA,oBAAS;AAAC,wBAAG,MAAM,MAAM,IAAI,GAAE;AAAC,4BAAM,QAAQ,EAAC,cAAa,eAAa,+BAA8B,YAAW,8EAA6E,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,0BAAG,YAAY,MAAK;AAAC,kCAAU,CAAC,KAAK;AAAA,sBAAE,OAAM;AAAC,gCAAQ,KAAK,KAAK;AAAA,sBAAE;AAAC;AAAA,oBAAS;AAAA,kBAAC,OAAM;AAAC,0BAAM,QAAQ,EAAC,cAAa,eAAa,+BAA8B,YAAW,yEAAwE,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,wBAAG,YAAY,MAAK;AAAC,gCAAU,CAAC,KAAK;AAAA,oBAAE,OAAM;AAAC,8BAAQ,KAAK,KAAK;AAAA,oBAAE;AAAC;AAAA,kBAAS;AAAA,gBAAC;AAAC,oBAAG,OAAO,mBAAmB,QAAU;AAAC,sBAAG,OAAO,OAAO,mBAAmB,WAAU;AAAC,0BAAM,QAAQ,EAAC,cAAa,eAAa,qCAAoC,YAAW,+EAA8E,SAAQ,QAAO,QAAO,EAAC,MAAM,UAAS,GAAE,SAAQ,kBAAiB;AAAE,wBAAG,YAAY,MAAK;AAAC,gCAAU,CAAC,KAAK;AAAA,oBAAE,OAAM;AAAC,8BAAQ,KAAK,KAAK;AAAA,oBAAE;AAAC;AAAA,kBAAS;AAAA,gBAAC;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,sBAAqB,YAAW,qDAAoD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,gBAAG,MAAM,aAAa,QAAU;AAAC,kBAAG,OAAO,MAAM,aAAa,WAAU;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,sBAAqB,YAAW,qDAAoD,SAAQ,QAAO,QAAO,EAAC,MAAM,UAAS,GAAE,SAAQ,kBAAiB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,gBAAG,MAAM,qBAAqB,QAAU;AAAC,kBAAI,SAAS,MAAM;AAAiB,kBAAG,EAAI,OAAO,UAAU,aAAc,EAAE,SAAS,MAAM,CAAC,MAAM,MAAM,MAAQ,SAAS,MAAM,IAAI;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,8BAA6B,YAAW,6DAA4D,SAAQ,QAAO,QAAO,EAAC,MAAM,UAAS,GAAE,SAAQ,kBAAiB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAC,kBAAI,OAAO,UAAU,YAAc,SAAS,MAAM,GAAG;AAAC,oBAAG,SAAS,OAAO,MAAM,MAAM,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,8BAA6B,YAAW,gEAA+D,SAAQ,WAAU,QAAO,EAAC,YAAY,MAAM,OAAO,IAAG,GAAE,SAAQ,iBAAgB;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,SAAS,KAAK,MAAM,MAAM,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,8BAA6B,YAAW,gEAA+D,SAAQ,WAAU,QAAO,EAAC,YAAY,MAAM,OAAO,EAAC,GAAE,SAAQ,eAAc;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,aAAY,YAAW,iCAAgC,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAA,MAAC,OAAM;AAAC,cAAM,QAAQ,EAAC,cAAa,YAAW,UAAS,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,YAAG,YAAY,MAAK;AAAC,oBAAU,CAAC,KAAK;AAAA,QAAE,OAAM;AAAC,kBAAQ,KAAK,KAAK;AAAA,QAAE;AAAC;AAAA,MAAS;AAAC,iBAAW,SAAS;AAAQ,aAAO,WAAW;AAAA,IAAE;AAAC,eAAW,YAAY,EAAC,SAAQ,MAAK,gBAAe,OAAM,gBAAe,MAAK;AAAotC,QAAM,YAAY,kBAAoC,YAAY,WAAW;AAAqoB,aAAS,WAAW,MAAM,EAAC,eAAa,IAAI,YAAY,oBAAoB,WAAS,MAAM,iBAAe,CAAC,EAAC,IAAE,CAAC,GAAE;AAAC,UAAI,UAAU;AAAK,UAAI,SAAS;AAAE,YAAM,aAAa,WAAW;AAAU,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,QAAQ,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,IAAI,GAAE;AAAC,YAAG,KAAK,WAAW,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,SAAQ,GAAE,SAAQ,uCAA4C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,mBAAU,QAAQ,MAAK;AAAC,cAAG,EAAK,SAAS,YAAc,SAAS,SAAY,SAAS,iBAAoB,SAAS,WAAW;AAAC,kBAAM,OAAO,EAAC,cAAa,YAAW,0BAAyB,SAAQ,wBAAuB,QAAO,EAAC,oBAAoB,KAAI,GAAE,SAAQ,sCAAqC;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,IAAI;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,IAAI;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,WAAW,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAO,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,IAAG;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,WAAU,YAAW,iCAAgC,SAAQ,aAAY,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,WAAU,YAAW,iCAAgC,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,OAAO,EAAC,cAAa,eAAa,WAAU,YAAW,4BAA2B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,IAAI;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,IAAI;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,QAAQ,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAI,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,MAAK;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,QAAO,YAAW,yBAAwB,SAAQ,aAAY,QAAO,EAAC,OAAO,KAAI,GAAE,SAAQ,0CAAyC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,CAAE,SAAS,KAAK,GAAG;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,QAAO,YAAW,sBAAqB,SAAQ,UAAS,QAAO,EAAC,QAAQ,MAAK,GAAE,SAAQ,0BAAiC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,OAAO,EAAC,cAAa,eAAa,QAAO,YAAW,oBAAmB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,IAAI;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,IAAI;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,gBAAgB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAY,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,uBAAU,QAAQ,OAAM;AAAC,kBAAG,EAAG,SAAS,UAAY,SAAS,QAAQ;AAAC,sBAAM,OAAO,EAAC,cAAa,eAAa,gBAAe,YAAW,iDAAgD,SAAQ,wBAAuB,QAAO,EAAC,oBAAoB,KAAI,GAAE,SAAQ,sCAAqC;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,IAAI;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,IAAI;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,gBAAG,MAAM,SAAS,QAAU;AAAC,kBAAI,QAAQ,MAAM;AAAK,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,wBAAM,OAAO,EAAC,cAAa,eAAa,qBAAoB,YAAW,sDAAqD,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,IAAI;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,IAAI;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,qBAAoB,YAAW,sDAAqD,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,qBAAoB,YAAW,iDAAgD,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,gBAAG,MAAM,QAAQ,QAAU;AAAC,kBAAI,QAAQ,MAAM;AAAI,kBAAG,OAAO,UAAU,UAAS;AAAC,oBAAG,MAAM,KAAK,IAAI,MAAK;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,oBAAmB,YAAW,yBAAwB,SAAQ,aAAY,QAAO,EAAC,OAAO,KAAI,GAAE,SAAQ,0CAAyC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAC,oBAAG,CAAE,SAAS,KAAK,GAAG;AAAC,wBAAM,QAAQ,EAAC,cAAa,eAAa,oBAAmB,YAAW,sBAAqB,SAAQ,UAAS,QAAO,EAAC,QAAQ,MAAK,GAAE,SAAQ,0BAAiC;AAAE,sBAAG,YAAY,MAAK;AAAC,8BAAU,CAAC,KAAK;AAAA,kBAAE,OAAM;AAAC,4BAAQ,KAAK,KAAK;AAAA,kBAAE;AAAC;AAAA,gBAAS;AAAA,cAAC,OAAM;AAAC,sBAAM,QAAQ,EAAC,cAAa,eAAa,oBAAmB,YAAW,oBAAmB,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,KAAK;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,KAAK;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,iCAAgC,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,WAAW,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAO,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,KAAK;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,WAAU,YAAW,iCAAgC,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAI,GAAE,SAAQ,0CAAyC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,WAAU,YAAW,iCAAgC,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,WAAU,YAAW,4BAA2B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAA,MAAC,OAAM;AAAC,cAAM,QAAQ,EAAC,cAAa,YAAW,UAAS,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,YAAG,YAAY,MAAK;AAAC,oBAAU,CAAC,KAAK;AAAA,QAAE,OAAM;AAAC,kBAAQ,KAAK,KAAK;AAAA,QAAE;AAAC;AAAA,MAAS;AAAC,iBAAW,SAAS;AAAQ,aAAO,WAAW;AAAA,IAAE;AAAC,eAAW,YAAY,EAAC,SAAQ,MAAK,gBAAe,OAAM,gBAAe,MAAK;AAAE,aAAS,WAAW,MAAM,EAAC,eAAa,IAAI,YAAY,oBAAoB,WAAS,MAAM,iBAAe,CAAC,EAAC,IAAE,CAAC,GAAE;AAAC,UAAI,UAAU;AAAK,UAAI,SAAS;AAAE,YAAM,aAAa,WAAW;AAAU,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,QAAQ,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,IAAI,GAAE;AAAC,YAAG,KAAK,mBAAmB,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,iBAAgB,GAAE,SAAQ,+CAAoD;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,cAAc,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAU,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,CAAE,UAAU,SAAS,KAAK,GAAG;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,cAAa,YAAW,8BAA6B,SAAQ,UAAS,QAAO,EAAC,QAAQ,YAAW,GAAE,SAAQ,gCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,OAAO,EAAC,cAAa,eAAa,cAAa,YAAW,4BAA2B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,IAAI;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,IAAI;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,cAAc,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAU,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,CAAE,UAAU,SAAS,KAAK,GAAG;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,cAAa,YAAW,8BAA6B,SAAQ,UAAS,QAAO,EAAC,QAAQ,YAAW,GAAE,SAAQ,gCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,OAAO,EAAC,cAAa,eAAa,cAAa,YAAW,4BAA2B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,IAAI;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,IAAI;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,cAAc,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAU,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,KAAI;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,cAAa,YAAW,oCAAmC,SAAQ,aAAY,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,yCAAwC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,gBAAG,MAAM,KAAK,IAAI,GAAE;AAAC,oBAAM,OAAO,EAAC,cAAa,eAAa,cAAa,YAAW,oCAAmC,SAAQ,aAAY,QAAO,EAAC,OAAO,EAAC,GAAE,SAAQ,wCAAuC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,IAAI;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,IAAI;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,OAAO,EAAC,cAAa,eAAa,cAAa,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,IAAI;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,IAAI;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,mBAAmB,QAAU;AAAC,cAAG,CAAE,WAAW,KAAK,gBAAgB,EAAC,cAAa,eAAa,mBAAkB,YAAW,MAAK,oBAAmB,kBAAiB,UAAS,eAAc,CAAC,GAAG;AAAC,sBAAU,YAAY,OAAO,WAAW,SAAS,QAAQ,OAAO,WAAW,MAAM;AAAE,qBAAS,QAAQ;AAAA,UAAO;AAAA,QAAC;AAAC,YAAG,KAAK,YAAY,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAQ,cAAG,SAAS,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,MAAM,sBAAsB,QAAU;AAAC,kBAAG,OAAO,MAAM,sBAAsB,WAAU;AAAC,sBAAM,OAAO,EAAC,cAAa,eAAa,8BAA6B,YAAW,yDAAwD,SAAQ,QAAO,QAAO,EAAC,MAAM,UAAS,GAAE,SAAQ,kBAAiB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,IAAI;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,IAAI;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAC,gBAAG,MAAM,wBAAwB,QAAU;AAAC,kBAAG,OAAO,MAAM,wBAAwB,WAAU;AAAC,sBAAM,OAAO,EAAC,cAAa,eAAa,gCAA+B,YAAW,2DAA0D,SAAQ,QAAO,QAAO,EAAC,MAAM,UAAS,GAAE,SAAQ,kBAAiB;AAAE,oBAAG,YAAY,MAAK;AAAC,4BAAU,CAAC,IAAI;AAAA,gBAAE,OAAM;AAAC,0BAAQ,KAAK,IAAI;AAAA,gBAAE;AAAC;AAAA,cAAS;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,4BAA2B,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAA,MAAC,OAAM;AAAC,cAAM,QAAQ,EAAC,cAAa,YAAW,UAAS,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,YAAG,YAAY,MAAK;AAAC,oBAAU,CAAC,KAAK;AAAA,QAAE,OAAM;AAAC,kBAAQ,KAAK,KAAK;AAAA,QAAE;AAAC;AAAA,MAAS;AAAC,iBAAW,SAAS;AAAQ,aAAO,WAAW;AAAA,IAAE;AAAC,eAAW,YAAY,EAAC,SAAQ,MAAK,gBAAe,OAAM,gBAAe,MAAK;AAAE,aAAS,WAAW,MAAM,EAAC,eAAa,IAAI,YAAY,oBAAoB,WAAS,MAAM,iBAAe,CAAC,EAAC,IAAE,CAAC,GAAE;AAA6E;AAAC,UAAI,UAAU;AAAK,UAAI,SAAS;AAAE,YAAM,aAAa,WAAW;AAAU,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,WAAW,cAAa;AAAC,mBAAW,QAAQ;AAAA,MAAU;AAAC,UAAG,QAAQ,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,IAAI,GAAE;AAAC,YAAG,KAAK,kBAAkB,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,gBAAe,GAAE,SAAQ,8CAAmD;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,YAAY,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,UAAS,GAAE,SAAQ,wCAA6C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,QAAO,GAAE,SAAQ,sCAA2C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,YAAY,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,UAAS,GAAE,SAAQ,wCAA6C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,aAAa,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,WAAU,GAAE,SAAQ,yCAA8C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,WAAW,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,SAAQ,GAAE,SAAQ,uCAA4C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,YAAY,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,UAAS,GAAE,SAAQ,wCAA6C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,aAAa,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,WAAU,GAAE,SAAQ,yCAA8C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,YAAG,KAAK,SAAS,QAAU;AAAC,gBAAM,OAAO,EAAC,cAAa,YAAW,cAAa,SAAQ,YAAW,QAAO,EAAC,iBAAiB,OAAM,GAAE,SAAQ,qCAA0C;AAAE,cAAG,YAAY,MAAK;AAAC,sBAAU,CAAC,IAAI;AAAA,UAAE,OAAM;AAAC,oBAAQ,KAAK,IAAI;AAAA,UAAE;AAAC;AAAA,QAAS;AAAC,mBAAU,QAAQ,MAAK;AAAC,cAAG,CAAE,MAAM,KAAK,SAAS,YAAY,IAAI,GAAG;AAAC,kBAAM,OAAO,EAAC,cAAa,YAAW,0BAAyB,SAAQ,wBAAuB,QAAO,EAAC,oBAAoB,KAAI,GAAE,SAAQ,sCAAqC;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,IAAI;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,IAAI;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,kBAAkB,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAc,cAAG,OAAO,UAAU,UAAS;AAAC,gBAAG,CAAC,SAAS,KAAK,KAAK,GAAE;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAiB,YAAW,sCAAqC,SAAQ,WAAU,QAAO,EAAC,SAAS,+CAA8C,GAAE,SAAQ,oEAA2E;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,kBAAiB,YAAW,mCAAkC,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,YAAY,QAAU;AAAC,cAAG,CAAE,WAAW,KAAK,SAAS,EAAC,cAAa,eAAa,YAAW,YAAW,MAAK,oBAAmB,WAAU,UAAS,eAAc,CAAC,GAAG;AAAC,sBAAU,YAAY,OAAO,WAAW,SAAS,QAAQ,OAAO,WAAW,MAAM;AAAE,qBAAS,QAAQ;AAAA,UAAO;AAAA,QAAC;AAAC,YAAG,KAAK,UAAU,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAM,cAAG,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,MAAM,SAAS,KAAI;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,+BAA8B,SAAQ,YAAW,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,oCAAmC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,kBAAM,OAAO,MAAM;AAAO,qBAAQ,KAAG,GAAG,KAAG,MAAM,MAAK;AAAC,kBAAG,CAAE,WAAW,MAAM,EAAE,GAAG,EAAC,cAAa,eAAa,YAAY,IAAG,YAAW,OAAM,oBAAmB,IAAG,UAAS,eAAc,CAAC,GAAG;AAAC,0BAAU,YAAY,OAAO,WAAW,SAAS,QAAQ,OAAO,WAAW,MAAM;AAAE,yBAAS,QAAQ;AAAA,cAAO;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,UAAS,YAAW,2BAA0B,SAAQ,QAAO,QAAO,EAAC,MAAM,QAAO,GAAE,SAAQ,gBAAe;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,YAAY,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAQ,cAAG,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,MAAM,SAAS,IAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,iCAAgC,SAAQ,YAAW,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,mCAAkC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,kBAAM,OAAO,MAAM;AAAO,qBAAQ,KAAG,GAAG,KAAG,MAAM,MAAK;AAAC,kBAAG,CAAE,WAAW,MAAM,EAAE,GAAG,EAAC,cAAa,eAAa,cAAc,IAAG,YAAW,OAAM,oBAAmB,IAAG,UAAS,eAAc,CAAC,GAAG;AAAC,0BAAU,YAAY,OAAO,WAAW,SAAS,QAAQ,OAAO,WAAW,MAAM;AAAE,yBAAS,QAAQ;AAAA,cAAO;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,6BAA4B,SAAQ,QAAO,QAAO,EAAC,MAAM,QAAO,GAAE,SAAQ,gBAAe;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,aAAa,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAS,cAAG,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,MAAM,SAAS,KAAI;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,aAAY,YAAW,kCAAiC,SAAQ,YAAW,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,oCAAmC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,kBAAM,OAAO,MAAM;AAAO,qBAAQ,KAAG,GAAG,KAAG,MAAM,MAAK;AAAC,kBAAG,CAAE,WAAW,MAAM,EAAE,GAAG,EAAC,cAAa,eAAa,eAAe,IAAG,YAAW,OAAM,oBAAmB,IAAG,UAAS,eAAc,CAAC,GAAG;AAAC,0BAAU,YAAY,OAAO,WAAW,SAAS,QAAQ,OAAO,WAAW,MAAM;AAAE,yBAAS,QAAQ;AAAA,cAAO;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,aAAY,YAAW,8BAA6B,SAAQ,QAAO,QAAO,EAAC,MAAM,QAAO,GAAE,SAAQ,gBAAe;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,WAAW,QAAU;AAAC,cAAI,QAAQ,KAAK;AAAO,cAAG,MAAM,QAAQ,KAAK,GAAE;AAAC,gBAAG,MAAM,SAAS,KAAI;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,WAAU,YAAW,gCAA+B,SAAQ,YAAW,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,oCAAmC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,kBAAM,OAAO,MAAM;AAAO,qBAAQ,KAAG,GAAG,KAAG,MAAM,MAAK;AAAC,kBAAG,CAAE,WAAW,MAAM,EAAE,GAAG,EAAC,cAAa,eAAa,aAAa,IAAG,YAAW,OAAM,oBAAmB,IAAG,UAAS,eAAc,CAAC,GAAG;AAAC,0BAAU,YAAY,OAAO,WAAW,SAAS,QAAQ,OAAO,WAAW,MAAM;AAAE,yBAAS,QAAQ;AAAA,cAAO;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,WAAU,YAAW,4BAA2B,SAAQ,QAAO,QAAO,EAAC,MAAM,QAAO,GAAE,SAAQ,gBAAe;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,mBAAmB,QAAU;AAAC,cAAI,SAAS,KAAK;AAAe,cAAG,MAAM,QAAQ,MAAM,GAAE;AAAC,gBAAG,OAAO,SAAS,IAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,mBAAkB,YAAW,wCAAuC,SAAQ,YAAW,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,mCAAkC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,kBAAM,OAAO,OAAO;AAAO,qBAAQ,KAAG,GAAG,KAAG,MAAM,MAAK;AAAC,kBAAG,CAAE,WAAW,OAAO,EAAE,GAAG,EAAC,cAAa,eAAa,qBAAqB,IAAG,YAAW,QAAO,oBAAmB,IAAG,UAAS,eAAc,CAAC,GAAG;AAAC,0BAAU,YAAY,OAAO,WAAW,SAAS,QAAQ,OAAO,WAAW,MAAM;AAAE,yBAAS,QAAQ;AAAA,cAAO;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,mBAAkB,YAAW,oCAAmC,SAAQ,QAAO,QAAO,EAAC,MAAM,QAAO,GAAE,SAAQ,gBAAe;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,gBAAgB,QAAU;AAAC,cAAI,SAAS,KAAK;AAAY,cAAG,MAAM,QAAQ,MAAM,GAAE;AAAC,gBAAG,OAAO,SAAS,IAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,qCAAoC,SAAQ,YAAW,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,mCAAkC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,kBAAM,OAAO,OAAO;AAAO,qBAAQ,KAAG,GAAG,KAAG,MAAM,MAAK;AAAC,kBAAG,CAAE,WAAW,OAAO,EAAE,GAAG,EAAC,cAAa,eAAa,kBAAkB,IAAG,YAAW,QAAO,oBAAmB,IAAG,UAAS,eAAc,CAAC,GAAG;AAAC,0BAAU,YAAY,OAAO,WAAW,SAAS,QAAQ,OAAO,WAAW,MAAM;AAAE,yBAAS,QAAQ;AAAA,cAAO;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,gBAAe,YAAW,iCAAgC,SAAQ,QAAO,QAAO,EAAC,MAAM,QAAO,GAAE,SAAQ,gBAAe;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,iBAAiB,QAAU;AAAC,cAAI,SAAS,KAAK;AAAa,cAAG,MAAM,QAAQ,MAAM,GAAE;AAAC,gBAAG,OAAO,SAAS,IAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,iBAAgB,YAAW,sCAAqC,SAAQ,YAAW,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,mCAAkC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,kBAAM,OAAO,OAAO;AAAO,qBAAQ,KAAG,GAAG,KAAG,MAAM,MAAK;AAAC,kBAAG,CAAE,WAAW,OAAO,EAAE,GAAG,EAAC,cAAa,eAAa,mBAAmB,IAAG,YAAW,QAAO,oBAAmB,IAAG,UAAS,eAAc,CAAC,GAAG;AAAC,0BAAU,YAAY,OAAO,WAAW,SAAS,QAAQ,OAAO,WAAW,MAAM;AAAE,yBAAS,QAAQ;AAAA,cAAO;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,iBAAgB,YAAW,kCAAiC,SAAQ,QAAO,QAAO,EAAC,MAAM,QAAO,GAAE,SAAQ,gBAAe;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,WAAW,QAAU;AAAC,cAAI,SAAS,KAAK;AAAO,cAAG,MAAM,QAAQ,MAAM,GAAE;AAAC,gBAAG,OAAO,SAAS,IAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,WAAU,YAAW,gCAA+B,SAAQ,YAAW,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,mCAAkC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,kBAAM,OAAO,OAAO;AAAO,qBAAQ,KAAG,GAAG,KAAG,MAAM,MAAK;AAAC,kBAAG,CAAE,WAAW,OAAO,EAAE,GAAG,EAAC,cAAa,eAAa,aAAa,IAAG,YAAW,QAAO,oBAAmB,IAAG,UAAS,eAAc,CAAC,GAAG;AAAC,0BAAU,YAAY,OAAO,WAAW,SAAS,QAAQ,OAAO,WAAW,MAAM;AAAE,yBAAS,QAAQ;AAAA,cAAO;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,WAAU,YAAW,4BAA2B,SAAQ,QAAO,QAAO,EAAC,MAAM,QAAO,GAAE,SAAQ,gBAAe;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,cAAc,QAAU;AAAC,cAAI,SAAS,KAAK;AAAU,cAAG,MAAM,QAAQ,MAAM,GAAE;AAAC,gBAAG,OAAO,SAAS,IAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,cAAa,YAAW,mCAAkC,SAAQ,YAAW,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,mCAAkC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,kBAAM,OAAO,OAAO;AAAO,qBAAQ,KAAG,GAAG,KAAG,MAAM,MAAK;AAAC,kBAAG,CAAE,WAAW,OAAO,EAAE,GAAG,EAAC,cAAa,eAAa,gBAAgB,IAAG,YAAW,QAAO,oBAAmB,IAAG,UAAS,eAAc,CAAC,GAAG;AAAC,0BAAU,YAAY,OAAO,WAAW,SAAS,QAAQ,OAAO,WAAW,MAAM;AAAE,yBAAS,QAAQ;AAAA,cAAO;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,cAAa,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,QAAO,GAAE,SAAQ,gBAAe;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,iBAAiB,QAAU;AAAC,cAAI,SAAS,KAAK;AAAa,cAAG,MAAM,QAAQ,MAAM,GAAE;AAAC,gBAAG,OAAO,SAAS,KAAI;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,iBAAgB,YAAW,sCAAqC,SAAQ,YAAW,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,oCAAmC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,kBAAM,OAAO,OAAO;AAAO,qBAAQ,KAAG,GAAG,KAAG,MAAM,MAAK;AAAC,kBAAG,CAAE,WAAW,OAAO,EAAE,GAAG,EAAC,cAAa,eAAa,mBAAmB,IAAG,YAAW,QAAO,oBAAmB,IAAG,UAAS,eAAc,CAAC,GAAG;AAAC,0BAAU,YAAY,OAAO,WAAW,SAAS,QAAQ,OAAO,WAAW,MAAM;AAAE,yBAAS,QAAQ;AAAA,cAAO;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,iBAAgB,YAAW,kCAAiC,SAAQ,QAAO,QAAO,EAAC,MAAM,QAAO,GAAE,SAAQ,gBAAe;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,cAAc,QAAU;AAAC,cAAI,SAAS,KAAK;AAAU,cAAG,MAAM,QAAQ,MAAM,GAAE;AAAC,gBAAG,OAAO,SAAS,IAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,cAAa,YAAW,mCAAkC,SAAQ,YAAW,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,mCAAkC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,kBAAM,QAAQ,OAAO;AAAO,qBAAQ,MAAI,GAAG,MAAI,OAAO,OAAM;AAAC,kBAAG,CAAE,WAAW,OAAO,GAAG,GAAG,EAAC,cAAa,eAAa,gBAAgB,KAAI,YAAW,QAAO,oBAAmB,KAAI,UAAS,eAAc,CAAC,GAAG;AAAC,0BAAU,YAAY,OAAO,WAAW,SAAS,QAAQ,OAAO,WAAW,MAAM;AAAE,yBAAS,QAAQ;AAAA,cAAO;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,cAAa,YAAW,+BAA8B,SAAQ,QAAO,QAAO,EAAC,MAAM,QAAO,GAAE,SAAQ,gBAAe;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,YAAY,QAAU;AAAC,cAAI,SAAS,KAAK;AAAQ,cAAG,MAAM,QAAQ,MAAM,GAAE;AAAC,gBAAG,OAAO,SAAS,KAAI;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,iCAAgC,SAAQ,YAAW,QAAO,EAAC,OAAO,IAAG,GAAE,SAAQ,oCAAmC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,kBAAM,QAAQ,OAAO;AAAO,qBAAQ,MAAI,GAAG,MAAI,OAAO,OAAM;AAAC,kBAAG,CAAE,WAAW,OAAO,GAAG,GAAG,EAAC,cAAa,eAAa,cAAc,KAAI,YAAW,QAAO,oBAAmB,KAAI,UAAS,eAAc,CAAC,GAAG;AAAC,0BAAU,YAAY,OAAO,WAAW,SAAS,QAAQ,OAAO,WAAW,MAAM;AAAE,yBAAS,QAAQ;AAAA,cAAO;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,6BAA4B,SAAQ,QAAO,QAAO,EAAC,MAAM,QAAO,GAAE,SAAQ,gBAAe;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,YAAY,QAAU;AAAC,cAAI,SAAS,KAAK;AAAQ,cAAG,MAAM,QAAQ,MAAM,GAAE;AAAC,gBAAG,OAAO,SAAS,IAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,iCAAgC,SAAQ,YAAW,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,mCAAkC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,kBAAM,QAAQ,OAAO;AAAO,qBAAQ,MAAI,GAAG,MAAI,OAAO,OAAM;AAAC,kBAAG,CAAE,WAAW,OAAO,GAAG,GAAG,EAAC,cAAa,eAAa,cAAc,KAAI,YAAW,QAAO,oBAAmB,KAAI,UAAS,eAAc,CAAC,GAAG;AAAC,0BAAU,YAAY,OAAO,WAAW,SAAS,QAAQ,OAAO,WAAW,MAAM;AAAE,yBAAS,QAAQ;AAAA,cAAO;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,YAAW,YAAW,6BAA4B,SAAQ,QAAO,QAAO,EAAC,MAAM,QAAO,GAAE,SAAQ,gBAAe;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,eAAe,QAAU;AAAC,cAAI,SAAS,KAAK;AAAW,cAAG,MAAM,QAAQ,MAAM,GAAE;AAAC,gBAAG,OAAO,SAAS,IAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,eAAc,YAAW,oCAAmC,SAAQ,YAAW,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,mCAAkC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,kBAAM,QAAQ,OAAO;AAAO,qBAAQ,MAAI,GAAG,MAAI,OAAO,OAAM;AAAC,kBAAG,CAAE,WAAW,OAAO,GAAG,GAAG,EAAC,cAAa,eAAa,iBAAiB,KAAI,YAAW,QAAO,oBAAmB,KAAI,UAAS,eAAc,CAAC,GAAG;AAAC,0BAAU,YAAY,OAAO,WAAW,SAAS,QAAQ,OAAO,WAAW,MAAM;AAAE,yBAAS,QAAQ;AAAA,cAAO;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,eAAc,YAAW,gCAA+B,SAAQ,QAAO,QAAO,EAAC,MAAM,QAAO,GAAE,SAAQ,gBAAe;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,oBAAoB,QAAU;AAAC,cAAI,SAAS,KAAK;AAAgB,cAAG,MAAM,QAAQ,MAAM,GAAE;AAAC,gBAAG,OAAO,SAAS,IAAG;AAAC,oBAAM,QAAQ,EAAC,cAAa,eAAa,oBAAmB,YAAW,yCAAwC,SAAQ,YAAW,QAAO,EAAC,OAAO,GAAE,GAAE,SAAQ,mCAAkC;AAAE,kBAAG,YAAY,MAAK;AAAC,0BAAU,CAAC,KAAK;AAAA,cAAE,OAAM;AAAC,wBAAQ,KAAK,KAAK;AAAA,cAAE;AAAC;AAAA,YAAS;AAAC,kBAAM,QAAQ,OAAO;AAAO,qBAAQ,MAAI,GAAG,MAAI,OAAO,OAAM;AAAC,kBAAG,CAAE,WAAW,OAAO,GAAG,GAAG,EAAC,cAAa,eAAa,sBAAsB,KAAI,YAAW,QAAO,oBAAmB,KAAI,UAAS,eAAc,CAAC,GAAG;AAAC,0BAAU,YAAY,OAAO,WAAW,SAAS,QAAQ,OAAO,WAAW,MAAM;AAAE,yBAAS,QAAQ;AAAA,cAAO;AAAA,YAAC;AAAA,UAAC,OAAM;AAAC,kBAAM,QAAQ,EAAC,cAAa,eAAa,oBAAmB,YAAW,qCAAoC,SAAQ,QAAO,QAAO,EAAC,MAAM,QAAO,GAAE,SAAQ,gBAAe;AAAE,gBAAG,YAAY,MAAK;AAAC,wBAAU,CAAC,KAAK;AAAA,YAAE,OAAM;AAAC,sBAAQ,KAAK,KAAK;AAAA,YAAE;AAAC;AAAA,UAAS;AAAA,QAAC;AAAC,YAAG,KAAK,YAAY,QAAU;AAAC,cAAG,CAAE,WAAW,KAAK,SAAS,EAAC,cAAa,eAAa,YAAW,YAAW,MAAK,oBAAmB,WAAU,UAAS,eAAc,CAAC,GAAG;AAAC,sBAAU,YAAY,OAAO,WAAW,SAAS,QAAQ,OAAO,WAAW,MAAM;AAAE,qBAAS,QAAQ;AAAA,UAAO;AAAA,QAAC;AAAC,YAAG,KAAK,aAAa,QAAU;AAAC,cAAG,CAAE,WAAW,KAAK,UAAU,EAAC,cAAa,eAAa,aAAY,YAAW,MAAK,oBAAmB,YAAW,UAAS,eAAc,CAAC,GAAG;AAAC,sBAAU,YAAY,OAAO,WAAW,SAAS,QAAQ,OAAO,WAAW,MAAM;AAAE,qBAAS,QAAQ;AAAA,UAAO;AAAA,QAAC;AAAC,YAAG,KAAK,SAAS,QAAU;AAAC,cAAG,CAAE,WAAW,KAAK,MAAM,EAAC,cAAa,eAAa,SAAQ,YAAW,MAAK,oBAAmB,QAAO,UAAS,eAAc,CAAC,GAAG;AAAC,sBAAU,YAAY,OAAO,WAAW,SAAS,QAAQ,OAAO,WAAW,MAAM;AAAE,qBAAS,QAAQ;AAAA,UAAO;AAAA,QAAC;AAAA,MAAC,OAAM;AAAC,cAAM,QAAQ,EAAC,cAAa,YAAW,UAAS,SAAQ,QAAO,QAAO,EAAC,MAAM,SAAQ,GAAE,SAAQ,iBAAgB;AAAE,YAAG,YAAY,MAAK;AAAC,oBAAU,CAAC,KAAK;AAAA,QAAE,OAAM;AAAC,kBAAQ,KAAK,KAAK;AAAA,QAAE;AAAC;AAAA,MAAS;AAAC,iBAAW,SAAS;AAAQ,aAAO,WAAW;AAAA,IAAE;AAAC,eAAW,YAAY,EAAC,SAAQ,MAAK,gBAAe,OAAM,gBAAe,MAAK;AAAA;AAAA;;;ACH5qwT;AAAA,EACE,SAAW;AAAA,EACX,KAAO;AAAA,EACP,OAAS;AAAA,EACT,aAAe;AAAA,EACf,MAAQ;AAAA,EACR,sBAAwB;AAAA,EACxB,UAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,YAAc;AAAA,IACZ,eAAiB;AAAA,MACf,MAAQ;AAAA,MACR,SAAW;AAAA,MACX,aAAe;AAAA,IACjB;AAAA,IACA,SAAW,EAAE,MAAQ,kBAAkB;AAAA,IACvC,OAAS;AAAA,MACP,MAAQ;AAAA,MACR,UAAY;AAAA,MACZ,OAAS,EAAE,MAAQ,eAAe;AAAA,IACpC;AAAA,IACA,SAAW;AAAA,MACT,MAAQ;AAAA,MACR,UAAY;AAAA,MACZ,OAAS,EAAE,MAAQ,iBAAiB;AAAA,IACtC;AAAA,IACA,UAAY;AAAA,MACV,MAAQ;AAAA,MACR,UAAY;AAAA,MACZ,OAAS,EAAE,MAAQ,kBAAkB;AAAA,IACvC;AAAA,IACA,QAAU;AAAA,MACR,MAAQ;AAAA,MACR,UAAY;AAAA,MACZ,OAAS,EAAE,MAAQ,gBAAgB;AAAA,IACrC;AAAA,IACA,gBAAkB;AAAA,MAChB,MAAQ;AAAA,MACR,UAAY;AAAA,MACZ,OAAS,EAAE,MAAQ,wBAAwB;AAAA,IAC7C;AAAA,IACA,aAAe;AAAA,MACb,MAAQ;AAAA,MACR,UAAY;AAAA,MACZ,OAAS,EAAE,MAAQ,qBAAqB;AAAA,IAC1C;AAAA,IACA,cAAgB;AAAA,MACd,MAAQ;AAAA,MACR,UAAY;AAAA,MACZ,OAAS,EAAE,MAAQ,uBAAuB;AAAA,IAC5C;AAAA,IACA,QAAU;AAAA,MACR,MAAQ;AAAA,MACR,UAAY;AAAA,MACZ,OAAS,EAAE,MAAQ,gBAAgB;AAAA,IACrC;AAAA,IACA,WAAa;AAAA,MACX,MAAQ;AAAA,MACR,UAAY;AAAA,MACZ,OAAS,EAAE,MAAQ,oBAAoB;AAAA,IACzC;AAAA,IACA,cAAgB;AAAA,MACd,MAAQ;AAAA,MACR,UAAY;AAAA,MACZ,OAAS,EAAE,MAAQ,sBAAsB;AAAA,IAC3C;AAAA,IACA,WAAa;AAAA,MACX,MAAQ;AAAA,MACR,UAAY;AAAA,MACZ,OAAS,EAAE,MAAQ,mBAAmB;AAAA,IACxC;AAAA,IACA,SAAW;AAAA,MACT,MAAQ;AAAA,MACR,UAAY;AAAA,MACZ,OAAS,EAAE,MAAQ,iBAAiB;AAAA,IACtC;AAAA,IACA,SAAW;AAAA,MACT,MAAQ;AAAA,MACR,UAAY;AAAA,MACZ,OAAS,EAAE,MAAQ,iBAAiB;AAAA,IACtC;AAAA,IACA,YAAc;AAAA,MACZ,MAAQ;AAAA,MACR,UAAY;AAAA,MACZ,OAAS,EAAE,MAAQ,oBAAoB;AAAA,IACzC;AAAA,IACA,iBAAmB;AAAA,MACjB,MAAQ;AAAA,MACR,UAAY;AAAA,MACZ,OAAS,EAAE,MAAQ,yBAAyB;AAAA,IAC9C;AAAA,IACA,SAAW,EAAE,MAAQ,kBAAkB;AAAA,IACvC,UAAY,EAAE,MAAQ,mBAAmB;AAAA,IACzC,MAAQ,EAAE,MAAQ,eAAe;AAAA,EACnC;AAAA,EACA,OAAS;AAAA,IACP,WAAa;AAAA,MACX,MAAQ;AAAA,MACR,WAAa;AAAA,MACb,WAAa;AAAA,MACb,SAAW;AAAA,MACX,aAAe;AAAA,IACjB;AAAA,IACA,eAAiB;AAAA,MACf,MAAQ;AAAA,MACR,SAAW;AAAA,MACX,aAAe;AAAA,IACjB;AAAA,IACA,WAAa;AAAA,MACX,MAAQ;AAAA,MACR,SAAW;AAAA,MACX,aAAe;AAAA,IACjB;AAAA,IACA,aAAe;AAAA,MACb,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,IACjB;AAAA,IACA,KAAO;AAAA,MACL,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,IACf;AAAA,IACA,OAAS;AAAA,MACP,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,IACf;AAAA,IACA,MAAQ;AAAA,MACN,MAAQ;AAAA,MACR,WAAa;AAAA,MACb,WAAa;AAAA,MACb,SAAW;AAAA,MACX,aAAe;AAAA,IACjB;AAAA,IACA,gBAAkB;AAAA,MAChB,MAAQ;AAAA,MACR,eAAiB;AAAA,MACjB,eAAiB;AAAA,QACf,MAAQ;AAAA,QACR,SAAW;AAAA,MACb;AAAA,MACA,sBAAwB;AAAA,QACtB,MAAQ;AAAA,QACR,WAAa;AAAA,QACb,WAAa;AAAA,MACf;AAAA,MACA,aAAe;AAAA,IACjB;AAAA,IACA,eAAiB;AAAA,MACf,MAAQ;AAAA,MACR,eAAiB;AAAA,MACjB,eAAiB;AAAA,QACf,MAAQ;AAAA,QACR,SAAW;AAAA,MACb;AAAA,MACA,sBAAwB;AAAA,QACtB,MAAQ;AAAA,QACR,WAAa;AAAA,QACb,WAAa;AAAA,MACf;AAAA,MACA,aAAe;AAAA,IACjB;AAAA,IACA,UAAY;AAAA,MACV,MAAQ;AAAA,MACR,MAAQ;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,aAAe;AAAA,IACjB;AAAA,IACA,SAAW;AAAA,MACT,MAAQ;AAAA,MACR,sBAAwB;AAAA,MACxB,UAAY,CAAC,aAAa;AAAA,MAC1B,YAAc;AAAA,QACZ,aAAe,EAAE,MAAQ,yBAAyB;AAAA,QAClD,SAAW,EAAE,MAAQ,yBAAyB;AAAA,QAC9C,KAAO,EAAE,MAAQ,wBAAwB;AAAA,QACzC,QAAU,EAAE,MAAQ,iBAAiB;AAAA,QACrC,UAAY,EAAE,MAAQ,kBAAkB;AAAA,MAC1C;AAAA,IACF;AAAA,IACA,QAAU;AAAA,MACR,MAAQ;AAAA,MACR,sBAAwB;AAAA,MACxB,UAAY,CAAC,KAAK;AAAA,MAClB,YAAc;AAAA,QACZ,KAAO;AAAA,UACL,MAAQ;AAAA,UACR,QAAU;AAAA,UACV,WAAa;AAAA,UACb,aAAe;AAAA,QACjB;AAAA,QACA,KAAO,EAAE,MAAQ,yBAAyB;AAAA,MAC5C;AAAA,IACF;AAAA,IACA,SAAW;AAAA,MACT,MAAQ;AAAA,MACR,sBAAwB;AAAA,MACxB,YAAc;AAAA,QACZ,SAAW,EAAE,MAAQ,wBAAwB;AAAA,QAC7C,QAAU,EAAE,MAAQ,UAAU,WAAa,IAAI;AAAA,QAC/C,UAAY,EAAE,MAAQ,yBAAyB;AAAA,QAC/C,SAAW,EAAE,MAAQ,yBAAyB;AAAA,MAChD;AAAA,IACF;AAAA,IACA,MAAQ;AAAA,MACN,MAAQ;AAAA,MACR,sBAAwB;AAAA,MACxB,UAAY,CAAC,MAAM,QAAQ,KAAK;AAAA,MAChC,YAAc;AAAA,QACZ,IAAM,EAAE,MAAQ,eAAe;AAAA,QAC/B,MAAQ,EAAE,MAAQ,mBAAmB;AAAA,QACrC,OAAS,EAAE,MAAQ,yBAAyB;AAAA,QAC5C,KAAO,EAAE,MAAQ,cAAc;AAAA,QAC/B,UAAY,EAAE,MAAQ,UAAU;AAAA,QAChC,OAAS,EAAE,MAAQ,WAAW,SAAW,EAAE;AAAA,QAC3C,SAAW,EAAE,MAAQ,cAAc;AAAA,MACrC;AAAA,MACA,OAAS;AAAA,QACP;AAAA,UACE,IAAM;AAAA,YACJ,YAAc,EAAE,MAAQ,EAAE,OAAS,SAAS,EAAE;AAAA,YAC9C,UAAY,CAAC,MAAM;AAAA,UACrB;AAAA,UACA,MAAQ;AAAA,YACN,YAAc,EAAE,SAAW,EAAE,MAAQ,cAAc,EAAE;AAAA,YACrD,UAAY,CAAC,SAAS;AAAA,UACxB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,QAAU;AAAA,MACR,MAAQ;AAAA,MACR,sBAAwB;AAAA,MACxB,UAAY,CAAC,MAAM,gBAAgB,QAAQ,WAAW;AAAA,MACtD,YAAc;AAAA,QACZ,IAAM,EAAE,MAAQ,eAAe;AAAA,QAC/B,cAAgB,EAAE,MAAQ,yBAAyB;AAAA,QACnD,MAAQ,EAAE,MAAQ,yBAAyB;AAAA,QAC3C,aAAe,EAAE,MAAQ,wBAAwB;AAAA,QACjD,WAAa,EAAE,MAAQ,oBAAoB;AAAA,QAC3C,SAAW;AAAA,UACT,OAAS,CAAC,EAAE,MAAQ,oBAAoB,GAAG,EAAE,MAAQ,OAAO,CAAC;AAAA,QAC/D;AAAA,QACA,WAAa,EAAE,MAAQ,UAAU;AAAA,QACjC,KAAO,EAAE,MAAQ,cAAc;AAAA,QAC/B,UAAY,EAAE,MAAQ,kBAAkB;AAAA,QACxC,OAAS,EAAE,MAAQ,WAAW,SAAW,EAAE;AAAA,MAC7C;AAAA,IACF;AAAA,IACA,SAAW;AAAA,MACT,MAAQ;AAAA,MACR,sBAAwB;AAAA,MACxB,UAAY,CAAC,MAAM,OAAO;AAAA,MAC1B,YAAc;AAAA,QACZ,IAAM,EAAE,MAAQ,eAAe;AAAA,QAC/B,OAAS,EAAE,MAAQ,yBAAyB;AAAA,QAC5C,aAAe,EAAE,MAAQ,wBAAwB;AAAA,QACjD,KAAO,EAAE,MAAQ,cAAc;AAAA,QAC/B,MAAQ;AAAA,UACN,MAAQ;AAAA,UACR,UAAY;AAAA,UACZ,OAAS,EAAE,MAAQ,UAAU,WAAa,GAAG,WAAa,GAAG;AAAA,QAC/D;AAAA,QACA,iBAAmB,EAAE,MAAQ,eAAe;AAAA,QAC5C,WAAa,EAAE,MAAQ,oBAAoB;AAAA,QAC3C,SAAW;AAAA,UACT,OAAS,CAAC,EAAE,MAAQ,oBAAoB,GAAG,EAAE,MAAQ,OAAO,CAAC;AAAA,QAC/D;AAAA,QACA,aAAe,EAAE,MAAQ,UAAU;AAAA,QACnC,OAAS,EAAE,MAAQ,WAAW,SAAW,EAAE;AAAA,MAC7C;AAAA,IACF;AAAA,IACA,OAAS;AAAA,MACP,MAAQ;AAAA,MACR,sBAAwB;AAAA,MACxB,UAAY,CAAC,MAAM,OAAO;AAAA,MAC1B,YAAc;AAAA,QACZ,IAAM,EAAE,MAAQ,eAAe;AAAA,QAC/B,OAAS,EAAE,MAAQ,UAAU,WAAa,GAAG,WAAa,IAAI;AAAA,QAC9D,UAAY;AAAA,UACV,MAAQ;AAAA,UACR,WAAa;AAAA,UACb,WAAa;AAAA,UACb,aAAe;AAAA,QACjB;AAAA,QACA,OAAS,EAAE,MAAQ,WAAW,SAAW,EAAE;AAAA,MAC7C;AAAA,IACF;AAAA,IACA,SAAW;AAAA,MACT,MAAQ;AAAA,MACR,sBAAwB;AAAA,MACxB,YAAc;AAAA,QACZ,OAAS,EAAE,MAAQ,gBAAgB;AAAA,QACnC,WAAa,EAAE,MAAQ,WAAW,SAAW,MAAM;AAAA,QACnD,SAAW,EAAE,MAAQ,cAAc;AAAA,MACrC;AAAA,IACF;AAAA,IACA,UAAY;AAAA,MACV,MAAQ;AAAA,MACR,sBAAwB;AAAA,MACxB,UAAY,CAAC,iBAAiB,kBAAkB;AAAA,MAChD,YAAc;AAAA,QACZ,eAAiB,EAAE,MAAQ,oBAAoB;AAAA,QAC/C,gBAAkB,EAAE,MAAQ,oBAAoB;AAAA,QAChD,kBAAoB;AAAA,UAClB,MAAQ;AAAA,UACR,UAAY;AAAA,UACZ,UAAY;AAAA,UACZ,aAAe;AAAA,UACf,OAAS,EAAE,MAAQ,oBAAoB;AAAA,QACzC;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,UACR,WAAa;AAAA,UACb,WAAa;AAAA,UACb,aAAe;AAAA,QACjB;AAAA,QACA,eAAiB;AAAA,UACf,MAAQ;AAAA,UACR,SAAW;AAAA,UACX,aAAe;AAAA,QACjB;AAAA,QACA,cAAgB;AAAA,UACd,MAAQ;AAAA,UACR,SAAW;AAAA,UACX,aAAe;AAAA,QACjB;AAAA,QACA,WAAa;AAAA,UACX,MAAQ;AAAA,UACR,SAAW;AAAA,UACX,aAAe;AAAA,QACjB;AAAA,QACA,iBAAmB;AAAA,UACjB,MAAQ;AAAA,UACR,SAAW;AAAA,UACX,aAAe;AAAA,QACjB;AAAA,QACA,UAAY,EAAE,MAAQ,2BAA2B;AAAA,MACnD;AAAA,IACF;AAAA,IACA,kBAAoB;AAAA,MAClB,MAAQ;AAAA,MACR,sBAAwB;AAAA,MACxB,aAAe;AAAA,MACf,YAAc;AAAA,QACZ,SAAW;AAAA,UACT,MAAQ;AAAA,UACR,SAAW;AAAA,UACX,aAAe;AAAA,QACjB;AAAA,QACA,QAAU;AAAA,UACR,MAAQ;AAAA,UACR,sBAAwB;AAAA,UACxB,UAAY,CAAC,UAAU;AAAA,UACvB,YAAc;AAAA,YACZ,UAAY;AAAA,cACV,MAAQ;AAAA,cACR,WAAa;AAAA,cACb,WAAa;AAAA,cACb,aAAe;AAAA,YACjB;AAAA,YACA,eAAiB,EAAE,MAAQ,WAAW,SAAW,KAAK;AAAA,YACtD,mBAAqB,EAAE,MAAQ,WAAW,SAAW,KAAK;AAAA,UAC5D;AAAA,QACF;AAAA,QACA,UAAY;AAAA,UACV,MAAQ;AAAA,UACR,sBAAwB;AAAA,UACxB,UAAY,CAAC,UAAU;AAAA,UACvB,YAAc;AAAA,YACZ,UAAY;AAAA,cACV,MAAQ;AAAA,cACR,WAAa;AAAA,cACb,WAAa;AAAA,cACb,aAAe;AAAA,YACjB;AAAA,YACA,gBAAkB,EAAE,MAAQ,WAAW,SAAW,KAAK;AAAA,UACzD;AAAA,QACF;AAAA,QACA,UAAY;AAAA,UACV,MAAQ;AAAA,UACR,SAAW;AAAA,UACX,aAAe;AAAA,QACjB;AAAA,QACA,kBAAoB;AAAA,UAClB,MAAQ;AAAA,UACR,SAAW;AAAA,UACX,SAAW;AAAA,UACX,aAAe;AAAA,QACjB;AAAA,MACF;AAAA,IACF;AAAA,IACA,MAAQ;AAAA,MACN,MAAQ;AAAA,MACR,sBAAwB;AAAA,MACxB,UAAY,CAAC,gBAAgB;AAAA,MAC7B,YAAc;AAAA,QACZ,WAAa,EAAE,MAAQ,sBAAsB;AAAA,QAC7C,WAAa,EAAE,MAAQ,sBAAsB;AAAA,QAC7C,WAAa;AAAA,UACX,MAAQ;AAAA,UACR,WAAa;AAAA,UACb,WAAa;AAAA,UACb,aAAe;AAAA,QACjB;AAAA,QACA,gBAAkB,EAAE,MAAQ,yBAAyB;AAAA,QACrD,SAAW,EAAE,MAAQ,sBAAsB;AAAA,MAC7C;AAAA,IACF;AAAA,IACA,gBAAkB;AAAA,MAChB,MAAQ;AAAA,MACR,sBAAwB;AAAA,MACxB,UAAY,CAAC,QAAQ;AAAA,MACrB,YAAc;AAAA,QACZ,QAAU;AAAA,UACR,MAAQ;AAAA,UACR,WAAa;AAAA,UACb,WAAa;AAAA,UACb,aAAe;AAAA,QACjB;AAAA,QACA,KAAO,EAAE,MAAQ,cAAc;AAAA,QAC/B,aAAe;AAAA,UACb,MAAQ;AAAA,UACR,sBAAwB;AAAA,UACxB,YAAc;AAAA,YACZ,MAAQ,EAAE,MAAQ,UAAU,WAAa,GAAG,WAAa,IAAI;AAAA,YAC7D,KAAO,EAAE,MAAQ,cAAc;AAAA,UACjC;AAAA,QACF;AAAA,QACA,QAAU;AAAA,UACR,MAAQ;AAAA,UACR,WAAa;AAAA,UACb,WAAa;AAAA,UACb,aAAe;AAAA,QACjB;AAAA,MACF;AAAA,IACF;AAAA,IACA,aAAe;AAAA,MACb,MAAQ;AAAA,MACR,sBAAwB;AAAA,MACxB,aAAe;AAAA,MACf,YAAc;AAAA,QACZ,mBAAqB;AAAA,UACnB,MAAQ;AAAA,UACR,SAAW;AAAA,UACX,aAAe;AAAA,QACjB;AAAA,QACA,qBAAuB;AAAA,UACrB,MAAQ;AAAA,UACR,SAAW;AAAA,UACX,aAAe;AAAA,QACjB;AAAA,MACF;AAAA,IACF;AAAA,IACA,eAAiB;AAAA,MACf,MAAQ;AAAA,MACR,sBAAwB;AAAA,MACxB,UAAY,CAAC,MAAM,SAAS,uBAAuB,WAAW;AAAA,MAC9D,YAAc;AAAA,QACZ,IAAM,EAAE,MAAQ,eAAe;AAAA,QAC/B,OAAS,EAAE,MAAQ,yBAAyB;AAAA,QAC5C,qBAAuB,EAAE,MAAQ,yBAAyB;AAAA,QAC1D,WAAa,EAAE,MAAQ,oBAAoB;AAAA,QAC3C,gBAAkB;AAAA,UAChB,OAAS,CAAC,EAAE,MAAQ,oBAAoB,GAAG,EAAE,MAAQ,OAAO,CAAC;AAAA,UAC7D,aAAe;AAAA,QACjB;AAAA,QACA,cAAgB;AAAA,UACd,MAAQ;AAAA,UACR,WAAa;AAAA,UACb,WAAa;AAAA,UACb,aAAe;AAAA,QACjB;AAAA,QACA,KAAO,EAAE,MAAQ,cAAc;AAAA,QAC/B,OAAS,EAAE,MAAQ,WAAW,SAAW,EAAE;AAAA,MAC7C;AAAA,IACF;AAAA,IACA,YAAc;AAAA,MACZ,MAAQ;AAAA,MACR,sBAAwB;AAAA,MACxB,UAAY,CAAC,MAAM,gBAAgB,WAAW;AAAA,MAC9C,YAAc;AAAA,QACZ,IAAM,EAAE,MAAQ,eAAe;AAAA,QAC/B,cAAgB,EAAE,MAAQ,yBAAyB;AAAA,QACnD,MAAQ,EAAE,MAAQ,yBAAyB;AAAA,QAC3C,aAAe,EAAE,MAAQ,wBAAwB;AAAA,QACjD,WAAa,EAAE,MAAQ,oBAAoB;AAAA,QAC3C,SAAW;AAAA,UACT,OAAS,CAAC,EAAE,MAAQ,oBAAoB,GAAG,EAAE,MAAQ,OAAO,CAAC;AAAA,UAC7D,aAAe;AAAA,QACjB;AAAA,QACA,WAAa,EAAE,MAAQ,UAAU;AAAA,QACjC,KAAO,EAAE,MAAQ,cAAc;AAAA,QAC/B,OAAS,EAAE,MAAQ,WAAW,SAAW,EAAE;AAAA,MAC7C;AAAA,IACF;AAAA,IACA,cAAgB;AAAA,MACd,MAAQ;AAAA,MACR,sBAAwB;AAAA,MACxB,UAAY,CAAC,MAAM,gBAAgB,QAAQ,WAAW;AAAA,MACtD,YAAc;AAAA,QACZ,IAAM,EAAE,MAAQ,eAAe;AAAA,QAC/B,cAAgB,EAAE,MAAQ,yBAAyB;AAAA,QACnD,MAAQ,EAAE,MAAQ,yBAAyB;AAAA,QAC3C,OAAS,EAAE,MAAQ,yBAAyB;AAAA,QAC5C,aAAe,EAAE,MAAQ,wBAAwB;AAAA,QACjD,WAAa,EAAE,MAAQ,oBAAoB;AAAA,QAC3C,SAAW;AAAA,UACT,OAAS,CAAC,EAAE,MAAQ,oBAAoB,GAAG,EAAE,MAAQ,OAAO,CAAC;AAAA,QAC/D;AAAA,QACA,WAAa,EAAE,MAAQ,UAAU;AAAA,QACjC,KAAO,EAAE,MAAQ,cAAc;AAAA,QAC/B,OAAS,EAAE,MAAQ,WAAW,SAAW,EAAE;AAAA,MAC7C;AAAA,IACF;AAAA,IACA,OAAS;AAAA,MACP,MAAQ;AAAA,MACR,sBAAwB;AAAA,MACxB,UAAY,CAAC,MAAM,SAAS,UAAU,MAAM;AAAA,MAC5C,YAAc;AAAA,QACZ,IAAM,EAAE,MAAQ,eAAe;AAAA,QAC/B,OAAS,EAAE,MAAQ,yBAAyB;AAAA,QAC5C,QAAU,EAAE,MAAQ,yBAAyB;AAAA,QAC7C,aAAe,EAAE,MAAQ,wBAAwB;AAAA,QACjD,MAAQ,EAAE,MAAQ,oBAAoB;AAAA,QACtC,KAAO,EAAE,MAAQ,cAAc;AAAA,QAC/B,OAAS,EAAE,MAAQ,WAAW,SAAW,EAAE;AAAA,MAC7C;AAAA,IACF;AAAA,IACA,WAAa;AAAA,MACX,MAAQ;AAAA,MACR,sBAAwB;AAAA,MACxB,UAAY,CAAC,MAAM,eAAe,WAAW;AAAA,MAC7C,YAAc;AAAA,QACZ,IAAM,EAAE,MAAQ,eAAe;AAAA,QAC/B,aAAe,EAAE,MAAQ,yBAAyB;AAAA,QAClD,QAAU,EAAE,MAAQ,yBAAyB;AAAA,QAC7C,cAAgB,EAAE,MAAQ,yBAAyB;AAAA,QACnD,aAAe,EAAE,MAAQ,wBAAwB;AAAA,QACjD,OAAS;AAAA,UACP,MAAQ;AAAA,UACR,WAAa;AAAA,UACb,WAAa;AAAA,UACb,aAAe;AAAA,QACjB;AAAA,QACA,WAAa,EAAE,MAAQ,oBAAoB;AAAA,QAC3C,SAAW;AAAA,UACT,OAAS,CAAC,EAAE,MAAQ,oBAAoB,GAAG,EAAE,MAAQ,OAAO,CAAC;AAAA,UAC7D,aAAe;AAAA,QACjB;AAAA,QACA,WAAa,EAAE,MAAQ,UAAU;AAAA,QACjC,KAAO,EAAE,MAAQ,cAAc;AAAA,QAC/B,OAAS,EAAE,MAAQ,WAAW,SAAW,EAAE;AAAA,MAC7C;AAAA,IACF;AAAA,IACA,aAAe;AAAA,MACb,MAAQ;AAAA,MACR,sBAAwB;AAAA,MACxB,UAAY,CAAC,MAAM,SAAS,MAAM;AAAA,MAClC,YAAc;AAAA,QACZ,IAAM,EAAE,MAAQ,eAAe;AAAA,QAC/B,OAAS,EAAE,MAAQ,yBAAyB;AAAA,QAC5C,WAAa,EAAE,MAAQ,yBAAyB;AAAA,QAChD,aAAe,EAAE,MAAQ,wBAAwB;AAAA,QACjD,MAAQ,EAAE,MAAQ,oBAAoB;AAAA,QACtC,KAAO,EAAE,MAAQ,cAAc;AAAA,QAC/B,KAAO;AAAA,UACL,MAAQ;AAAA,UACR,WAAa;AAAA,UACb,WAAa;AAAA,UACb,aAAe;AAAA,QACjB;AAAA,QACA,WAAa;AAAA,UACX,MAAQ;AAAA,UACR,UAAY;AAAA,UACZ,OAAS,EAAE,MAAQ,UAAU,WAAa,GAAG,WAAa,IAAI;AAAA,UAC9D,aAAe;AAAA,QACjB;AAAA,QACA,OAAS,EAAE,MAAQ,WAAW,SAAW,EAAE;AAAA,MAC7C;AAAA,IACF;AAAA,IACA,UAAY;AAAA,MACV,MAAQ;AAAA,MACR,sBAAwB;AAAA,MACxB,UAAY,CAAC,MAAM,YAAY,aAAa;AAAA,MAC5C,YAAc;AAAA,QACZ,IAAM,EAAE,MAAQ,eAAe;AAAA,QAC/B,UAAY,EAAE,MAAQ,oBAAoB;AAAA,QAC1C,aAAe,EAAE,MAAQ,yBAAyB;AAAA,QAClD,aAAe;AAAA,UACb,MAAQ;AAAA,UACR,MAAQ,CAAC,UAAU,UAAU,gBAAgB,gBAAgB,OAAO;AAAA,UACpE,aAAe;AAAA,QACjB;AAAA,QACA,OAAS,EAAE,MAAQ,WAAW,SAAW,EAAE;AAAA,MAC7C;AAAA,IACF;AAAA,IACA,QAAU;AAAA,MACR,MAAQ;AAAA,MACR,sBAAwB;AAAA,MACxB,UAAY,CAAC,MAAM,OAAO;AAAA,MAC1B,YAAc;AAAA,QACZ,IAAM,EAAE,MAAQ,eAAe;AAAA,QAC/B,OAAS,EAAE,MAAQ,yBAAyB;AAAA,QAC5C,UAAY,EAAE,MAAQ,yBAAyB;AAAA,QAC/C,cAAgB,EAAE,MAAQ,UAAU,WAAa,GAAG,WAAa,GAAG;AAAA,QACpE,aAAe,EAAE,MAAQ,wBAAwB;AAAA,QACjD,gBAAkB,EAAE,MAAQ,oBAAoB;AAAA,QAChD,gBAAkB,EAAE,MAAQ,cAAc;AAAA,QAC1C,oBAAsB;AAAA,UACpB,MAAQ;AAAA,UACR,aAAe;AAAA,QACjB;AAAA,QACA,OAAS,EAAE,MAAQ,WAAW,SAAW,EAAE;AAAA,MAC7C;AAAA,IACF;AAAA,IACA,QAAU;AAAA,MACR,MAAQ;AAAA,MACR,sBAAwB;AAAA,MACxB,UAAY,CAAC,MAAM,SAAS,gBAAgB,QAAQ;AAAA,MACpD,YAAc;AAAA,QACZ,IAAM,EAAE,MAAQ,eAAe;AAAA,QAC/B,OAAS,EAAE,MAAQ,yBAAyB;AAAA,QAC5C,cAAgB,EAAE,MAAQ,UAAU,WAAa,GAAG,WAAa,IAAI;AAAA,QACrE,QAAU;AAAA,UACR,MAAQ;AAAA,UACR,WAAa;AAAA,UACb,aAAe;AAAA,QACjB;AAAA,QACA,QAAU;AAAA,UACR,MAAQ;AAAA,UACR,MAAQ,CAAC,WAAW,UAAU,WAAW,WAAW;AAAA,QACtD;AAAA,QACA,aAAe,EAAE,MAAQ,wBAAwB;AAAA,QACjD,YAAc,EAAE,MAAQ,oBAAoB;AAAA,QAC5C,WAAa,EAAE,MAAQ,oBAAoB;AAAA,QAC3C,KAAO,EAAE,MAAQ,cAAc;AAAA,QAC/B,aAAe;AAAA,UACb,MAAQ;AAAA,UACR,UAAY;AAAA,UACZ,OAAS,EAAE,MAAQ,UAAU,WAAa,GAAG,WAAa,IAAI;AAAA,QAChE;AAAA,QACA,OAAS,EAAE,MAAQ,WAAW,SAAW,EAAE;AAAA,MAC7C;AAAA,IACF;AAAA,IACA,WAAa;AAAA,MACX,MAAQ;AAAA,MACR,sBAAwB;AAAA,MACxB,UAAY,CAAC,MAAM,SAAS,SAAS,MAAM;AAAA,MAC3C,YAAc;AAAA,QACZ,IAAM,EAAE,MAAQ,eAAe;AAAA,QAC/B,OAAS,EAAE,MAAQ,yBAAyB;AAAA,QAC5C,OAAS;AAAA,UACP,MAAQ;AAAA,UACR,WAAa;AAAA,UACb,WAAa;AAAA,UACb,aAAe;AAAA,QACjB;AAAA,QACA,MAAQ,EAAE,MAAQ,oBAAoB;AAAA,QACtC,oBAAsB;AAAA,UACpB,MAAQ;AAAA,UACR,aAAe;AAAA,QACjB;AAAA,QACA,aAAe,EAAE,MAAQ,wBAAwB;AAAA,QACjD,KAAO,EAAE,MAAQ,cAAc;AAAA,QAC/B,OAAS,EAAE,MAAQ,WAAW,SAAW,EAAE;AAAA,MAC7C;AAAA,IACF;AAAA,IACA,gBAAkB;AAAA,MAChB,MAAQ;AAAA,MACR,sBAAwB;AAAA,MACxB,UAAY,CAAC,MAAM,QAAQ,QAAQ;AAAA,MACnC,YAAc;AAAA,QACZ,IAAM,EAAE,MAAQ,eAAe;AAAA,QAC/B,MAAQ,EAAE,MAAQ,wBAAwB;AAAA,QAC1C,QAAU,EAAE,MAAQ,+BAA+B;AAAA,QACnD,cAAgB;AAAA,UACd,MAAQ;AAAA,UACR,aAAe;AAAA,QACjB;AAAA,QACA,MAAQ,EAAE,MAAQ,oBAAoB;AAAA,QACtC,iBAAmB;AAAA,UACjB,MAAQ;AAAA,UACR,aAAe;AAAA,QACjB;AAAA,QACA,oBAAsB;AAAA,UACpB,MAAQ;AAAA,UACR,aAAe;AAAA,QACjB;AAAA,QACA,OAAS,EAAE,MAAQ,WAAW,SAAW,EAAE;AAAA,MAC7C;AAAA,IACF;AAAA,IACA,sBAAwB;AAAA,MACtB,MAAQ;AAAA,MACR,sBAAwB;AAAA,MACxB,UAAY,CAAC,MAAM;AAAA,MACnB,YAAc;AAAA,QACZ,MAAQ;AAAA,UACN,MAAQ;AAAA,UACR,WAAa;AAAA,UACb,WAAa;AAAA,UACb,aAAe;AAAA,QACjB;AAAA,QACA,UAAY;AAAA,UACV,MAAQ;AAAA,UACR,aAAe;AAAA,QACjB;AAAA,QACA,KAAO;AAAA,UACL,MAAQ;AAAA,UACR,aAAe;AAAA,QACjB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;ACxtBO,IAAM,SAAS;;;ACkBtB,+BAA4B;AAWrB,IAAM,4BAA4B,CAAC,SAAS,SAAS,SAAS,SAAS,OAAO;AAuC9E,SAAS,SAAS,MAAiC;AAIxD,MAAI,OAAO,SAAS,YAAY,SAAS,QAAQ,MAAM,QAAQ,IAAI,GAAG;AACpE,WAAO;AAAA,MACL,IAAI;AAAA,MACJ,QAAQ;AAAA,QACN;AAAA,UACE,SAAS;AAAA,UACT,SAAS;AAAA,UACT,SAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAKA,QAAM,YAAY;AAClB,MAAI,OAAO,UAAU,kBAAkB,YAAY,CAAC,mBAAmB,UAAU,aAAa,GAAG;AAC/F,WAAO;AAAA,MACL,IAAI;AAAA,MACJ,QAAQ;AAAA,QACN;AAAA,UACE,SAAS;AAAA,UACT,SAAS,kBAAkB,UAAU,aAAa,qCAAqC,0BAA0B;AAAA,YAC/G;AAAA,UACF,CAAC;AAAA,UACD,SAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,UAAI,yBAAAC,SAAgB,IAAI,GAAG;AAUzB,UAAM,SAAS,KAAK,MAAM,KAAK,UAAU,IAAI,CAAC;AAC9C,wBAAoB,MAAM;AAM1B,UAAM,YAAY,sBAAsB,OAAO,SAAS;AACxD,QAAI,cAAc,QAAW;AAC3B,aAAO;AAAA,QACL,IAAI;AAAA,QACJ,QAAQ;AAAA,UACN;AAAA,YACE,SAAS,cAAc,UAAU,KAAK;AAAA,YACtC,SAAS,yCAAyC,UAAU,GAAG;AAAA,YAC/D,SAAS;AAAA,UACX;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,WAAO,EAAE,IAAI,MAAM,MAAM,OAAO;AAAA,EAClC;AAEA,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,SAAS,yBAAAA,QAAgB,UAAU,CAAC,GAAG,IAAI,iBAAiB;AAAA,EAC9D;AACF;AAEA,IAAM,qBAAqB;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,SAAS,oBAAoB,MAAqB;AAChD,QAAM,MAAM;AACZ,aAAW,OAAO,oBAAoB;AACpC,QAAI,CAAC,MAAM,QAAQ,IAAI,GAAG,CAAC,GAAG;AAC5B,UAAI,GAAG,IAAI,CAAC;AAAA,IACd;AAAA,EACF;AACF;AAEA,SAAS,sBACP,WAC4C;AAC5C,QAAM,OAAO,oBAAI,IAAoB;AACrC,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACzC,UAAM,QAAQ,UAAU,CAAC;AACzB,QAAI,UAAU,OAAW;AACzB,UAAM,MAAM,MAAM,SAAS,YAAY;AACvC,QAAI,KAAK,IAAI,GAAG,EAAG,QAAO,EAAE,OAAO,GAAG,KAAK,MAAM,SAAS;AAC1D,SAAK,IAAI,KAAK,CAAC;AAAA,EACjB;AACA,SAAO;AACT;AAEA,SAAS,mBAAmB,OAAwB;AAClD,SAAQ,0BAAgD,SAAS,KAAK;AACxE;AAEA,SAAS,kBAAkB,KAAmC;AAC5D,MAAI,UAAU,IAAI;AAElB,MAAI,IAAI,YAAY,YAAY;AAC9B,UAAM,UAAW,IAAI,OAAyC;AAC9D,QAAI,OAAO,YAAY,UAAU;AAC/B,gBAAU,GAAG,IAAI,YAAY,IAAI,qBAAqB,OAAO,CAAC;AAAA,IAChE;AAAA,EACF,WAAW,IAAI,YAAY,wBAAwB;AACjD,UAAM,QAAS,IAAI,OAA4C;AAC/D,QAAI,OAAO,UAAU,UAAU;AAC7B,gBAAU,GAAG,IAAI,YAAY,IAAI,qBAAqB,KAAK,CAAC;AAAA,IAC9D;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA,SAAS,IAAI,WAAW;AAAA,IACxB,SAAS,IAAI;AAAA,IACb,eAAe,IAAI,aAAa,IAAI,aAAa;AAAA,EACnD;AACF;AAGA,SAAS,qBAAqB,SAAyB;AACrD,SAAO,QAAQ,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI;AACxD;;;ACpLO,SAAS,UAAU,MAAkC;AAM1D,QAAM,MAAM,KAAK,MAAM,KAAK,UAAU,IAAI,CAAC;AAS3C,QAAM,MAAM;AACZ,aAAW,OAAO,mBAAmB;AACnC,QAAI,CAAC,MAAM,QAAQ,IAAI,GAAG,CAAC,GAAG;AAC5B,UAAI,GAAG,IAAI,CAAC;AAAA,IACd;AAAA,EACF;AAEA,mBAAiB,IAAI,OAAO;AAE5B,aAAW,QAAQ,IAAI,OAAO;AAC5B,2BAAuB,MAAM,OAAO;AAAA,EACtC;AACA,MAAI,QAAQ,kBAAkB,IAAI,KAAK;AAEvC,aAAW,UAAU,IAAI,SAAS;AAChC,2BAAuB,OAAO,YAAY;AAC1C,2BAAuB,OAAO,IAAI;AAClC,2BAAuB,QAAQ,aAAa;AAAA,EAC9C;AACA,MAAI,UAAU,kBAAkB,IAAI,OAAO;AAE3C,aAAW,WAAW,IAAI,UAAU;AAClC,2BAAuB,QAAQ,KAAK;AACpC,2BAAuB,SAAS,aAAa;AAAA,EAC/C;AACA,MAAI,WAAW,kBAAkB,IAAI,QAAQ;AAE7C,MAAI,SAAS,kBAAkB,IAAI,MAAM;AAEzC,aAAW,QAAQ,IAAI,gBAAgB;AACrC,2BAAuB,KAAK,KAAK;AACjC,2BAAuB,KAAK,mBAAmB;AAAA,EACjD;AACA,MAAI,iBAAiB,kBAAkB,IAAI,cAAc;AAEzD,aAAW,KAAK,IAAI,aAAa;AAC/B,2BAAuB,EAAE,YAAY;AACrC,2BAAuB,GAAG,MAAM;AAChC,2BAAuB,GAAG,aAAa;AAAA,EACzC;AACA,MAAI,cAAc,kBAAkB,IAAI,WAAW;AAEnD,aAAW,KAAK,IAAI,cAAc;AAChC,2BAAuB,EAAE,YAAY;AACrC,2BAAuB,EAAE,IAAI;AAC7B,2BAAuB,GAAG,OAAO;AACjC,2BAAuB,GAAG,aAAa;AAAA,EACzC;AACA,MAAI,eAAe,kBAAkB,IAAI,YAAY;AAErD,aAAW,KAAK,IAAI,QAAQ;AAC1B,2BAAuB,EAAE,KAAK;AAC9B,2BAAuB,EAAE,MAAM;AAC/B,2BAAuB,GAAG,aAAa;AAAA,EACzC;AACA,MAAI,SAAS,kBAAkB,IAAI,MAAM;AAEzC,aAAW,KAAK,IAAI,WAAW;AAC7B,2BAAuB,EAAE,WAAW;AACpC,2BAAuB,GAAG,QAAQ;AAClC,2BAAuB,GAAG,cAAc;AACxC,2BAAuB,GAAG,aAAa;AAAA,EACzC;AACA,MAAI,YAAY,kBAAkB,IAAI,SAAS;AAE/C,aAAW,KAAK,IAAI,cAAc;AAChC,2BAAuB,EAAE,KAAK;AAC9B,2BAAuB,GAAG,WAAW;AACrC,2BAAuB,GAAG,aAAa;AAAA,EACzC;AACA,MAAI,eAAe,kBAAkB,IAAI,YAAY;AAErD,aAAW,KAAK,IAAI,WAAW;AAC7B,2BAAuB,GAAG,aAAa;AAAA,EACzC;AACA,MAAI,YAAY,kBAAkB,IAAI,SAAS;AAE/C,aAAW,KAAK,IAAI,SAAS;AAC3B,2BAAuB,EAAE,KAAK;AAC9B,2BAAuB,GAAG,UAAU;AACpC,2BAAuB,GAAG,aAAa;AAAA,EACzC;AACA,MAAI,UAAU,kBAAkB,IAAI,OAAO;AAE3C,aAAW,KAAK,IAAI,SAAS;AAC3B,2BAAuB,EAAE,KAAK;AAC9B,2BAAuB,GAAG,aAAa;AAAA,EACzC;AACA,MAAI,UAAU,kBAAkB,IAAI,OAAO;AAE3C,aAAW,KAAK,IAAI,YAAY;AAC9B,2BAAuB,EAAE,KAAK;AAC9B,2BAAuB,GAAG,aAAa;AAAA,EACzC;AACA,MAAI,aAAa,kBAAkB,IAAI,UAAU;AAEjD,aAAW,KAAK,IAAI,iBAAiB;AACnC,2BAAuB,EAAE,IAAI;AAC7B,2BAAuB,GAAG,cAAc;AACxC,2BAAuB,EAAE,QAAQ,UAAU;AAAA,EAC7C;AACA,MAAI,kBAAkB,kBAAkB,IAAI,eAAe;AAE3D,SAAO;AACT;AAEA,SAAS,iBAAiB,SAAwB;AAChD,yBAAuB,QAAQ,WAAW;AAC1C,yBAAuB,SAAS,SAAS;AACzC,yBAAuB,SAAS,KAAK;AACrC,MAAI,QAAQ,QAAQ;AAClB,2BAAuB,QAAQ,QAAQ,KAAK;AAAA,EAC9C;AACA,MAAI,QAAQ,UAAU;AACpB,2BAAuB,QAAQ,UAAU,UAAU;AACnD,2BAAuB,QAAQ,UAAU,SAAS;AAAA,EACpD;AACF;AAGA,SAAS,uBAAuB,KAA2C;AACzE,aAAW,OAAO,OAAO,KAAK,GAAG,GAAG;AAClC,UAAM,QAAQ,IAAI,GAAG;AACrB,QAAI,UAAU,UAAa,MAAM,KAAK,MAAM,IAAI;AAC9C,aAAO,IAAI,GAAG;AAAA,IAChB;AAAA,EACF;AACF;AAQA,SAAS,uBAGP,QAAW,KAAc;AACzB,QAAM,MAAM,OAAO,GAAG;AACtB,MAAI,CAAC,IAAK;AACV,aAAW,KAAK,OAAO,KAAK,GAAG,GAAG;AAChC,UAAM,QAAQ,IAAI,CAAC;AACnB,QAAI,UAAU,UAAa,MAAM,KAAK,MAAM,IAAI;AAC9C,aAAO,IAAI,CAAC;AAAA,IACd;AAAA,EACF;AACA,MAAI,OAAO,KAAK,GAAG,EAAE,WAAW,GAAG;AACjC,WAAO,OAAO,GAAG;AAAA,EACnB;AACF;AAGA,SAAS,kBAAgD,OAAiB;AACxE,SAAO,MAAM,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM;AAClC,UAAM,KAAK,EAAE,SAAS,OAAO;AAC7B,UAAM,KAAK,EAAE,SAAS,OAAO;AAC7B,WAAO,KAAK;AAAA,EACd,CAAC;AACH;AAEA,IAAM,oBAAoB;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;AC1NA,IAAM,gBAAgB;AASf,SAAS,aAAa,KAAsB;AACjD,SAAO,cAAc,KAAK,GAAG;AAC/B;AAQO,SAAS,eAAe,KAAuB;AACpD,MAAI,CAAC,aAAa,GAAG,EAAG,QAAO,CAAC;AAChC,QAAM,QAAQ,IAAI,MAAM,GAAG;AAC3B,QAAM,MAAgB,CAAC;AACvB,WAAS,IAAI,MAAM,QAAQ,KAAK,GAAG,KAAK;AACtC,QAAI,KAAK,MAAM,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC;AAAA,EACtC;AACA,SAAO;AACT;AAcO,SAAS,sBACd,KACA,KACe;AACf,MAAI,CAAC,IAAK,QAAO;AACjB,QAAM,SAAS,IAAI,GAAG;AACtB,MAAI,WAAW,OAAW,QAAO;AACjC,QAAM,QAAQ,IAAI,YAAY;AAC9B,aAAW,KAAK,OAAO,KAAK,GAAG,GAAG;AAChC,QAAI,EAAE,YAAY,MAAM,MAAO,QAAO,IAAI,CAAC;AAAA,EAC7C;AACA,SAAO;AACT;;;ACqBO,SAAS,cACd,MACA,QACA,gBACkB;AAClB,QAAM,aAAa,gBAAgB,MAAM,QAAQ,cAAc;AAC/D,QAAM,cAAc,qBAAqB,KAAK,QAAQ,aAAa,UAAU;AAE7E,SAAO;AAAA,IACL,eAAe,KAAK;AAAA,IACpB,SAAS,eAAe,KAAK,SAAS,YAAY,aAAa,SAAS,EAAE;AAAA,IAC1E,OAAO,KAAK,MAAM,IAAI,CAAC,MAAM,YAAY,GAAG,UAAU,CAAC;AAAA,IACvD,SAAS,KAAK,QAAQ,IAAI,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC;AAAA,IAC7D,UAAU,KAAK,SAAS,IAAI,CAAC,MAAM,eAAe,GAAG,UAAU,CAAC;AAAA,IAChE,QAAQ,KAAK;AAAA,IACb,gBAAgB,KAAK,eAAe,IAAI,CAAC,MAAM,qBAAqB,GAAG,UAAU,CAAC;AAAA,IAClF,aAAa,KAAK,YAAY,IAAI,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC;AAAA,IACzE,cAAc,KAAK,aAAa,IAAI,CAAC,MAAM,oBAAoB,GAAG,UAAU,CAAC;AAAA,IAC7E,QAAQ,KAAK,OAAO,IAAI,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC;AAAA,IAC1D,WAAW,KAAK,UAAU,IAAI,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAAC;AAAA,IACpE,cAAc,KAAK,aAAa,IAAI,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAC;AAAA,IAC5E,WAAW,KAAK,UAAU,IAAI,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAAC;AAAA,IACnE,SAAS,KAAK,QAAQ,IAAI,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC;AAAA,IAC7D,SAAS,KAAK,QAAQ,IAAI,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC;AAAA,IAC7D,YAAY,KAAK,WAAW,IAAI,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAAC;AAAA,IACtE,iBAAiB,KAAK,gBAAgB,IAAI,CAAC,MAAM,sBAAsB,GAAG,UAAU,CAAC;AAAA,IACrF,SAAS,KAAK;AAAA,IACd,UAAU,KAAK;AAAA,IACf,MAAM,KAAK;AAAA,IACX,gBAAgB,aAAa,OAAO,WAAW,CAAC,KAAK;AAAA,EACvD;AACF;AAEA,SAAS,gBACP,MACA,QACA,gBACa;AACb,QAAM,MAAgB,CAAC;AACvB,MAAI,WAAW,OAAW,KAAI,KAAK,GAAG,eAAe,MAAM,CAAC;AAC5D,MAAI,mBAAmB,OAAW,KAAI,KAAK,GAAG,eAAe,cAAc,CAAC;AAC5E,MAAI,KAAK,GAAG,eAAe,KAAK,SAAS,aAAa,CAAC;AACvD,MAAI,KAAK,SAAS,mBAAmB,QAAW;AAC9C,QAAI,KAAK,GAAG,eAAe,KAAK,SAAS,cAAc,CAAC;AAAA,EAC1D;AACA,aAAW,OAAO,KAAK,SAAS,kBAAkB;AAChD,QAAI,KAAK,GAAG,eAAe,GAAG,CAAC;AAAA,EACjC;AACA,SAAO,qBAAqB,GAAG;AACjC;AAEA,SAAS,qBAAqB,MAA0B;AACtD,QAAM,OAAO,oBAAI,IAAY;AAC7B,QAAM,MAAgB,CAAC;AACvB,aAAW,OAAO,MAAM;AACtB,QAAI,CAAC,aAAa,GAAG,EAAG;AACxB,UAAM,QAAQ,IAAI,YAAY;AAC9B,QAAI,KAAK,IAAI,KAAK,EAAG;AACrB,SAAK,IAAI,KAAK;AACd,QAAI,KAAK,GAAG;AAAA,EACd;AACA,SAAO;AACT;AAEA,SAAS,qBACP,OACA,YAC+C;AAC/C,MAAI,CAAC,MAAO,QAAO;AACnB,aAAW,OAAO,YAAY;AAC5B,UAAM,MAAM,sBAAsB,OAAO,GAAG;AAC5C,QAAI,QAAQ,UAAa,IAAI,KAAK,MAAM,IAAI;AAC1C,aAAO,EAAE,OAAO,KAAK,IAAI;AAAA,IAC3B;AAAA,EACF;AACA,SAAO;AACT;AAEA,SAAS,cACP,OACA,YACoB;AACpB,SAAO,qBAAqB,OAAO,UAAU,GAAG;AAClD;AAEA,SAAS,eACP,SACA,YACA,aACkB;AAClB,QAAM,MAAwB,EAAE,YAAY;AAE5C,QAAM,UAAU,cAAc,QAAQ,SAAS,UAAU;AACzD,MAAI,YAAY,OAAW,KAAI,UAAU;AAEzC,QAAM,MAAM,cAAc,QAAQ,KAAK,UAAU;AACjD,MAAI,QAAQ,OAAW,KAAI,MAAM;AAEjC,MAAI,QAAQ,OAAQ,KAAI,SAAS,cAAc,QAAQ,QAAQ,UAAU;AACzE,MAAI,QAAQ,SAAU,KAAI,WAAW,eAAe,QAAQ,UAAU,UAAU;AAEhF,SAAO;AACT;AAEA,SAAS,cAAc,QAAgB,YAA0C;AAC/E,QAAM,MAAuB,EAAE,KAAK,OAAO,IAAI;AAC/C,QAAM,MAAM,cAAc,OAAO,KAAK,UAAU;AAChD,MAAI,QAAQ,OAAW,KAAI,MAAM;AACjC,SAAO;AACT;AAEA,SAAS,eAAe,SAAkB,YAA2C;AACnF,QAAM,MAAwB,CAAC;AAC/B,MAAI,QAAQ,YAAY,OAAW,KAAI,UAAU,QAAQ;AACzD,MAAI,QAAQ,WAAW,OAAW,KAAI,SAAS,QAAQ;AACvD,QAAM,WAAW,cAAc,QAAQ,UAAU,UAAU;AAC3D,MAAI,aAAa,OAAW,KAAI,WAAW;AAC3C,QAAM,UAAU,cAAc,QAAQ,SAAS,UAAU;AACzD,MAAI,YAAY,OAAW,KAAI,UAAU;AACzC,SAAO;AACT;AAEA,SAAS,YAAY,MAAY,YAAwC;AACvE,QAAM,QAAQ,cAAc,KAAK,OAAO,UAAU;AAClD,MAAI,KAAK,SAAS,UAAU;AAC1B,UAAMC,OAAqB;AAAA,MACzB,IAAI,KAAK;AAAA,MACT,MAAM;AAAA,MACN,KAAK,KAAK;AAAA,MACV,SAAS,KAAK;AAAA,IAChB;AACA,QAAI,UAAU,OAAW,CAAAA,KAAI,QAAQ;AACrC,QAAI,KAAK,aAAa,OAAW,CAAAA,KAAI,WAAW,KAAK;AACrD,QAAI,KAAK,UAAU,OAAW,CAAAA,KAAI,QAAQ,KAAK;AAC/C,WAAOA;AAAA,EACT;AACA,QAAM,MAAqB;AAAA,IACzB,IAAI,KAAK;AAAA,IACT,MAAM,KAAK;AAAA,IACX,KAAK,KAAK;AAAA,EACZ;AACA,MAAI,UAAU,OAAW,KAAI,QAAQ;AACrC,MAAI,KAAK,aAAa,OAAW,KAAI,WAAW,KAAK;AACrD,MAAI,KAAK,UAAU,OAAW,KAAI,QAAQ,KAAK;AAC/C,MAAI,KAAK,YAAY,OAAW,KAAI,UAAU,KAAK;AACnD,SAAO;AACT;AAEA,SAAS,cAAc,QAAgB,YAA0C;AAC/E,QAAM,MAAuB;AAAA,IAC3B,IAAI,OAAO;AAAA,IACX,cAAc,cAAc,OAAO,cAAc,UAAU,KAAK;AAAA,IAChE,MAAM,cAAc,OAAO,MAAM,UAAU,KAAK;AAAA,IAChD,WAAW,OAAO;AAAA,EACpB;AACA,QAAM,cAAc,cAAc,OAAO,aAAa,UAAU;AAChE,MAAI,gBAAgB,OAAW,KAAI,cAAc;AACjD,MAAI,OAAO,YAAY,OAAW,KAAI,UAAU,OAAO;AACvD,MAAI,OAAO,cAAc,OAAW,KAAI,YAAY,OAAO;AAC3D,MAAI,OAAO,QAAQ,OAAW,KAAI,MAAM,OAAO;AAC/C,MAAI,OAAO,UAAU,OAAW,KAAI,QAAQ,OAAO;AACnD,MAAI,OAAO,SAAU,KAAI,WAAW,eAAe,OAAO,UAAU,UAAU;AAC9E,SAAO;AACT;AAEA,SAAS,eAAe,SAAkB,YAA2C;AACnF,QAAM,MAAwB;AAAA,IAC5B,IAAI,QAAQ;AAAA,IACZ,OAAO,cAAc,QAAQ,OAAO,UAAU,KAAK;AAAA,EACrD;AACA,QAAM,cAAc,cAAc,QAAQ,aAAa,UAAU;AACjE,MAAI,gBAAgB,OAAW,KAAI,cAAc;AACjD,MAAI,QAAQ,QAAQ,OAAW,KAAI,MAAM,QAAQ;AACjD,MAAI,QAAQ,SAAS,OAAW,KAAI,OAAO,QAAQ;AACnD,MAAI,QAAQ,oBAAoB,OAAW,KAAI,kBAAkB,QAAQ;AACzE,MAAI,QAAQ,cAAc,OAAW,KAAI,YAAY,QAAQ;AAC7D,MAAI,QAAQ,YAAY,OAAW,KAAI,UAAU,QAAQ;AACzD,MAAI,QAAQ,gBAAgB,OAAW,KAAI,cAAc,QAAQ;AACjE,MAAI,QAAQ,UAAU,OAAW,KAAI,QAAQ,QAAQ;AACrD,SAAO;AACT;AAEA,SAAS,qBACP,MACA,YACwB;AACxB,QAAM,MAA8B;AAAA,IAClC,IAAI,KAAK;AAAA,IACT,OAAO,cAAc,KAAK,OAAO,UAAU,KAAK;AAAA,IAChD,qBAAqB,cAAc,KAAK,qBAAqB,UAAU,KAAK;AAAA,IAC5E,WAAW,KAAK;AAAA,EAClB;AACA,MAAI,KAAK,mBAAmB,OAAW,KAAI,iBAAiB,KAAK;AACjE,MAAI,KAAK,iBAAiB,OAAW,KAAI,eAAe,KAAK;AAC7D,MAAI,KAAK,QAAQ,OAAW,KAAI,MAAM,KAAK;AAC3C,MAAI,KAAK,UAAU,OAAW,KAAI,QAAQ,KAAK;AAC/C,SAAO;AACT;AAEA,SAAS,kBAAkB,YAAwB,YAA8C;AAC/F,QAAM,MAA2B;AAAA,IAC/B,IAAI,WAAW;AAAA,IACf,cAAc,cAAc,WAAW,cAAc,UAAU,KAAK;AAAA,IACpE,WAAW,WAAW;AAAA,EACxB;AACA,QAAM,OAAO,cAAc,WAAW,MAAM,UAAU;AACtD,MAAI,SAAS,OAAW,KAAI,OAAO;AACnC,QAAM,cAAc,cAAc,WAAW,aAAa,UAAU;AACpE,MAAI,gBAAgB,OAAW,KAAI,cAAc;AACjD,MAAI,WAAW,YAAY,OAAW,KAAI,UAAU,WAAW;AAC/D,MAAI,WAAW,cAAc,OAAW,KAAI,YAAY,WAAW;AACnE,MAAI,WAAW,QAAQ,OAAW,KAAI,MAAM,WAAW;AACvD,MAAI,WAAW,UAAU,OAAW,KAAI,QAAQ,WAAW;AAC3D,SAAO;AACT;AAEA,SAAS,oBAAoB,GAAiB,YAAgD;AAC5F,QAAM,MAA6B;AAAA,IACjC,IAAI,EAAE;AAAA,IACN,cAAc,cAAc,EAAE,cAAc,UAAU,KAAK;AAAA,IAC3D,MAAM,cAAc,EAAE,MAAM,UAAU,KAAK;AAAA,IAC3C,WAAW,EAAE;AAAA,EACf;AACA,QAAM,QAAQ,cAAc,EAAE,OAAO,UAAU;AAC/C,MAAI,UAAU,OAAW,KAAI,QAAQ;AACrC,QAAM,cAAc,cAAc,EAAE,aAAa,UAAU;AAC3D,MAAI,gBAAgB,OAAW,KAAI,cAAc;AACjD,MAAI,EAAE,YAAY,OAAW,KAAI,UAAU,EAAE;AAC7C,MAAI,EAAE,cAAc,OAAW,KAAI,YAAY,EAAE;AACjD,MAAI,EAAE,QAAQ,OAAW,KAAI,MAAM,EAAE;AACrC,MAAI,EAAE,UAAU,OAAW,KAAI,QAAQ,EAAE;AACzC,SAAO;AACT;AAEA,SAAS,aAAa,OAAc,YAAyC;AAC3E,QAAM,MAAsB;AAAA,IAC1B,IAAI,MAAM;AAAA,IACV,OAAO,cAAc,MAAM,OAAO,UAAU,KAAK;AAAA,IACjD,QAAQ,cAAc,MAAM,QAAQ,UAAU,KAAK;AAAA,IACnD,MAAM,MAAM;AAAA,EACd;AACA,QAAM,cAAc,cAAc,MAAM,aAAa,UAAU;AAC/D,MAAI,gBAAgB,OAAW,KAAI,cAAc;AACjD,MAAI,MAAM,QAAQ,OAAW,KAAI,MAAM,MAAM;AAC7C,MAAI,MAAM,UAAU,OAAW,KAAI,QAAQ,MAAM;AACjD,SAAO;AACT;AAEA,SAAS,iBAAiB,KAAgB,YAA6C;AACrF,QAAM,MAA0B;AAAA,IAC9B,IAAI,IAAI;AAAA,IACR,aAAa,cAAc,IAAI,aAAa,UAAU,KAAK;AAAA,IAC3D,WAAW,IAAI;AAAA,EACjB;AACA,QAAM,SAAS,cAAc,IAAI,QAAQ,UAAU;AACnD,MAAI,WAAW,OAAW,KAAI,SAAS;AACvC,QAAM,eAAe,cAAc,IAAI,cAAc,UAAU;AAC/D,MAAI,iBAAiB,OAAW,KAAI,eAAe;AACnD,QAAM,cAAc,cAAc,IAAI,aAAa,UAAU;AAC7D,MAAI,gBAAgB,OAAW,KAAI,cAAc;AACjD,MAAI,IAAI,UAAU,OAAW,KAAI,QAAQ,IAAI;AAC7C,MAAI,IAAI,YAAY,OAAW,KAAI,UAAU,IAAI;AACjD,MAAI,IAAI,cAAc,OAAW,KAAI,YAAY,IAAI;AACrD,MAAI,IAAI,QAAQ,OAAW,KAAI,MAAM,IAAI;AACzC,MAAI,IAAI,UAAU,OAAW,KAAI,QAAQ,IAAI;AAC7C,SAAO;AACT;AAEA,SAAS,mBAAmB,KAAkB,YAA+C;AAC3F,QAAM,MAA4B;AAAA,IAChC,IAAI,IAAI;AAAA,IACR,OAAO,cAAc,IAAI,OAAO,UAAU,KAAK;AAAA,IAC/C,MAAM,IAAI;AAAA,EACZ;AACA,QAAM,YAAY,cAAc,IAAI,WAAW,UAAU;AACzD,MAAI,cAAc,OAAW,KAAI,YAAY;AAC7C,QAAM,cAAc,cAAc,IAAI,aAAa,UAAU;AAC7D,MAAI,gBAAgB,OAAW,KAAI,cAAc;AACjD,MAAI,IAAI,QAAQ,OAAW,KAAI,MAAM,IAAI;AACzC,MAAI,IAAI,QAAQ,OAAW,KAAI,MAAM,IAAI;AACzC,MAAI,IAAI,cAAc,OAAW,KAAI,YAAY,IAAI;AACrD,MAAI,IAAI,UAAU,OAAW,KAAI,QAAQ,IAAI;AAC7C,SAAO;AACT;AAEA,SAAS,gBAAgB,MAAgB,YAA4C;AACnF,QAAM,MAAyB;AAAA,IAC7B,IAAI,KAAK;AAAA,IACT,UAAU,KAAK;AAAA,IACf,aAAa,KAAK;AAAA,EACpB;AACA,QAAM,cAAc,cAAc,KAAK,aAAa,UAAU;AAC9D,MAAI,gBAAgB,OAAW,KAAI,cAAc;AACjD,MAAI,KAAK,UAAU,OAAW,KAAI,QAAQ,KAAK;AAC/C,SAAO;AACT;AAEA,SAAS,cAAc,QAAgB,YAA0C;AAC/E,QAAM,MAAuB;AAAA,IAC3B,IAAI,OAAO;AAAA,IACX,OAAO,cAAc,OAAO,OAAO,UAAU,KAAK;AAAA,EACpD;AACA,QAAM,WAAW,cAAc,OAAO,UAAU,UAAU;AAC1D,MAAI,aAAa,OAAW,KAAI,WAAW;AAC3C,MAAI,OAAO,iBAAiB,OAAW,KAAI,eAAe,OAAO;AACjE,QAAM,cAAc,cAAc,OAAO,aAAa,UAAU;AAChE,MAAI,gBAAgB,OAAW,KAAI,cAAc;AACjD,MAAI,OAAO,mBAAmB,OAAW,KAAI,iBAAiB,OAAO;AACrE,MAAI,OAAO,mBAAmB,OAAW,KAAI,iBAAiB,OAAO;AACrE,MAAI,OAAO,uBAAuB,OAAW,KAAI,qBAAqB,OAAO;AAC7E,MAAI,OAAO,UAAU,OAAW,KAAI,QAAQ,OAAO;AACnD,SAAO;AACT;AAEA,SAAS,cAAc,QAAgB,YAA0C;AAC/E,QAAM,MAAuB;AAAA,IAC3B,IAAI,OAAO;AAAA,IACX,OAAO,cAAc,OAAO,OAAO,UAAU,KAAK;AAAA,IAClD,cAAc,OAAO;AAAA,IACrB,QAAQ,OAAO;AAAA,EACjB;AACA,MAAI,OAAO,WAAW,OAAW,KAAI,SAAS,OAAO;AACrD,QAAM,cAAc,cAAc,OAAO,aAAa,UAAU;AAChE,MAAI,gBAAgB,OAAW,KAAI,cAAc;AACjD,MAAI,OAAO,eAAe,OAAW,KAAI,aAAa,OAAO;AAC7D,MAAI,OAAO,cAAc,OAAW,KAAI,YAAY,OAAO;AAC3D,MAAI,OAAO,QAAQ,OAAW,KAAI,MAAM,OAAO;AAC/C,MAAI,OAAO,gBAAgB,OAAW,KAAI,cAAc,OAAO;AAC/D,MAAI,OAAO,UAAU,OAAW,KAAI,QAAQ,OAAO;AACnD,SAAO;AACT;AAEA,SAAS,iBAAiB,WAAsB,YAA6C;AAC3F,QAAM,MAA0B;AAAA,IAC9B,IAAI,UAAU;AAAA,IACd,OAAO,cAAc,UAAU,OAAO,UAAU,KAAK;AAAA,IACrD,OAAO,UAAU;AAAA,IACjB,MAAM,UAAU;AAAA,EAClB;AACA,QAAM,cAAc,cAAc,UAAU,aAAa,UAAU;AACnE,MAAI,gBAAgB,OAAW,KAAI,cAAc;AACjD,MAAI,UAAU,uBAAuB,QAAW;AAC9C,QAAI,qBAAqB,UAAU;AAAA,EACrC;AACA,MAAI,UAAU,QAAQ,OAAW,KAAI,MAAM,UAAU;AACrD,MAAI,UAAU,UAAU,OAAW,KAAI,QAAQ,UAAU;AACzD,SAAO;AACT;AAEA,SAAS,sBACP,gBACA,YACyB;AACzB,QAAM,MAA+B;AAAA,IACnC,IAAI,eAAe;AAAA,IACnB,MAAM,cAAc,eAAe,MAAM,UAAU,KAAK;AAAA,IACxD,QAAQ,4BAA4B,eAAe,QAAQ,UAAU;AAAA,EACvE;AACA,QAAM,eAAe,cAAc,eAAe,cAAc,UAAU;AAC1E,MAAI,iBAAiB,OAAW,KAAI,eAAe;AACnD,MAAI,eAAe,SAAS,OAAW,KAAI,OAAO,eAAe;AACjE,MAAI,eAAe,oBAAoB,QAAW;AAChD,QAAI,kBAAkB,eAAe;AAAA,EACvC;AACA,MAAI,eAAe,uBAAuB,QAAW;AACnD,QAAI,qBAAqB,eAAe;AAAA,EAC1C;AACA,MAAI,eAAe,UAAU,OAAW,KAAI,QAAQ,eAAe;AACnE,SAAO;AACT;AAEA,SAAS,4BACP,QACA,YAC+B;AAC/B,QAAM,MAAqC,EAAE,MAAM,OAAO,KAAK;AAC/D,QAAM,WAAW,cAAc,OAAO,UAAU,UAAU;AAC1D,MAAI,aAAa,OAAW,KAAI,WAAW;AAC3C,MAAI,OAAO,QAAQ,OAAW,KAAI,MAAM,OAAO;AAC/C,SAAO;AACT;;;AC3ZA,IAAM,wBAA+C,oBAAI,IAAc;AAAA,EACrE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AASM,SAAS,qBAAqB,MAAgC;AACnE,QAAM,SAAS,YAAY,MAAM,mBAAmB,IAAI,CAAC;AACzD,SAAO,EAAE,YAAY,sBAAsB,GAAG,OAAO;AACvD;AAQO,SAAS,0BAA0B,MAAgC;AACxE,QAAM,eAAe,mBAAmB,IAAI;AAC5C,QAAM,SAAS,YAAY,MAAM,YAAY;AAE7C,QAAM,MAA+B,CAAC;AACtC,MAAI,UAAU,IAAI;AAClB,MAAI,OAAO,IAAI;AACf,MAAI,iBAAiB,OAAW,KAAI,MAAM;AAC1C,MAAI,aAAa,KAAK;AACtB,MAAI,KAAK,KAAK,cAAc,OAAW,KAAI,cAAc,KAAK,KAAK;AACnE,MAAI,KAAK,KAAK,cAAc,OAAW,KAAI,eAAe,KAAK,KAAK;AACpE,MAAI,KAAK,QAAQ,WAAW,OAAW,KAAI,qBAAqB,KAAK,QAAQ,OAAO;AACpF,MAAI,aAAa;AACjB,SAAO;AACT;AAUO,SAAS,eAAe,MAAkC;AAC/D,SAAO,CAAC,0BAA0B,IAAI,CAAC;AACzC;AAEA,SAAS,mBAAmB,MAA4C;AACtE,QAAM,WAAW,KAAK,MAAM,KAAK,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,aAAa,IAAI;AACnF,SAAO,UAAU;AACnB;AAEA,SAAS,YAAY,MAAwB,cAA0C;AACrF,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,QAAM,MAA+B,CAAC;AACtC,MAAI,OAAO,IAAI;AACf,MAAI,iBAAiB,OAAW,KAAI,KAAK,IAAI,GAAG,YAAY;AAC5D,MAAI,OAAO,QAAQ;AACnB,MAAI,QAAQ,QAAQ,OAAW,KAAI,cAAc,QAAQ;AAEzD,QAAM,QAAQ,WAAW,QAAQ,MAAM;AACvC,MAAI,UAAU,OAAW,KAAI,QAAQ;AAErC,MAAI,iBAAiB,OAAW,KAAI,MAAM;AAE1C,QAAM,EAAE,SAAS,KAAK,IAAI,iBAAiB,OAAO;AAClD,QAAM,aAAa,uBAAuB,OAAO;AACjD,MAAI,WAAW,aAAa,OAAW,KAAI,WAAW,WAAW;AACjE,MAAI,WAAW,aAAa,OAAW,KAAI,WAAW,WAAW;AAEjE,QAAM,UAAU,aAAa,QAAQ,QAAQ;AAC7C,MAAI,YAAY,OAAW,KAAI,UAAU;AAEzC,QAAM,QAAQ,WAAW,OAAO;AAChC,MAAI,UAAU,OAAW,KAAI,QAAQ;AAErC,QAAM,aAAa,gBAAgB,MAAM;AACzC,MAAI,eAAe,OAAW,KAAI,aAAa;AAE/C,QAAM,gBAAgB,mBAAmB,SAAS;AAClD,MAAI,kBAAkB,OAAW,KAAI,gBAAgB;AAErD,QAAM,gBAAgB,iBAAiB,cAAc;AACrD,MAAI,kBAAkB,OAAW,KAAI,gBAAgB;AAErD,QAAM,WAAW,cAAc,WAAW;AAC1C,MAAI,aAAa,OAAW,KAAI,WAAW;AAE3C,QAAM,WAAW,cAAc,SAAS;AACxC,MAAI,aAAa,OAAW,KAAI,WAAW;AAE3C,QAAM,QAAQ,YAAY,MAAM;AAChC,MAAI,UAAU,OAAW,KAAI,QAAQ;AAErC,QAAM,SAAS,YAAY,KAAK;AAChC,MAAI,WAAW,OAAW,KAAI,SAAS;AAEvC,QAAM,YAAY;AAAA,IAChB,GAAG,eAAe,IAAI;AAAA,IACtB,GAAG,cAAc,QAAQ;AAAA,IACzB,GAAG,uBAAuB,YAAY;AAAA,IACtC,GAAG,kBAAkB,YAAY;AAAA,IACjC,GAAG,aAAa,OAAO;AAAA,IACvB,GAAG,iBAAiB,OAAO;AAAA,EAC7B;AACA,MAAI,UAAU,SAAS,EAAG,KAAI,YAAY;AAE1C,SAAO;AACT;AAEA,SAAS,WAAW,QAAyD;AAC3E,MAAI,CAAC,OAAQ,QAAO;AACpB,QAAM,MAA+B,CAAC;AACtC,MAAI,OAAO,IAAI;AACf,MAAI,MAAM,OAAO;AACjB,MAAI,OAAO,QAAQ,OAAW,KAAI,UAAU,OAAO;AACnD,SAAO;AACT;AAEA,SAAS,aAAa,UAA4D;AAChF,MAAI,CAAC,SAAU,QAAO;AACtB,QAAM,SACJ,SAAS,YAAY,UACrB,SAAS,WAAW,UACpB,SAAS,aAAa;AACxB,MAAI,CAAC,OAAQ,QAAO;AAGpB,QAAM,MAA+B,CAAC;AACtC,MAAI,OAAO,IAAI;AACf,MAAI,SAAS,YAAY,OAAW,KAAI,iBAAiB,SAAS;AAClE,MAAI,SAAS,WAAW,OAAW,KAAI,gBAAgB,SAAS;AAChE,MAAI,SAAS,aAAa,OAAW,KAAI,kBAAkB,SAAS;AACpE,SAAO;AACT;AAEA,SAAS,iBAAiB,SAGxB;AACA,QAAM,UAA6B,CAAC;AACpC,QAAM,OAA0B,CAAC;AACjC,aAAW,KAAK,SAAS;AACvB,QAAI,EAAE,cAAc,KAAM,SAAQ,KAAK,CAAC;AAAA,QACnC,MAAK,KAAK,CAAC;AAAA,EAClB;AACA,SAAO,EAAE,SAAS,KAAK;AACzB;AAEA,SAAS,uBAAuB,SAG9B;AACA,QAAM,OAAO,QAAQ,CAAC;AACtB,MAAI,SAAS,OAAW,QAAO,CAAC;AAChC,QAAM,MAAgD,CAAC;AACvD,MAAI,KAAK,SAAS,GAAI,KAAI,WAAW,KAAK;AAC1C,MAAI,WAAW,cAAc,IAAI;AACjC,SAAO;AACT;AAEA,SAAS,cAAc,QAAiC;AACtD,QAAM,MAA+B,CAAC;AACtC,MAAI,OAAO,IAAI;AACf,MAAI,OAAO,OAAO;AAClB,MAAI,OAAO,QAAQ,OAAW,KAAI,MAAM,OAAO;AAC/C,SAAO;AACT;AAEA,SAAS,eAAe,MAAmC;AACzD,SAAO,KAAK,IAAI,CAAC,MAAM;AACrB,UAAM,MAA+B,CAAC;AACtC,QAAI,OAAO,IAAI;AACf,QAAI,OAAO,EAAE;AACb,QAAI,WAAW,EAAE,SAAS,gBAAgB,MAAM,EAAE,aAAa;AAC/D,QAAI,YAAY,EAAE;AAGlB,QAAI,EAAE,YAAY,UAAa,EAAE,YAAY,KAAM,KAAI,UAAU,EAAE;AACnE,WAAO;AAAA,EACT,CAAC;AACH;AAEA,SAAS,cAAc,UAAwC;AAC7D,SAAO,SAAS,IAAI,CAAC,MAAM;AACzB,UAAM,MAA+B,CAAC;AACtC,QAAI,OAAO,IAAI;AACf,QAAI,OAAO,EAAE;AACb,QAAI,EAAE,QAAQ,OAAW,KAAI,MAAM,EAAE;AACrC,QAAI,EAAE,cAAc,OAAW,KAAI,gBAAgB,EAAE;AACrD,QAAI,EAAE,SAAS,UAAa,EAAE,KAAK,SAAS,EAAG,KAAI,QAAQ,EAAE;AAC7D,WAAO;AAAA,EACT,CAAC;AACH;AAEA,SAAS,YAAY,OAA8C;AACjE,QAAM,MAAM,MAAM,OAAO,CAAC,MAAM,sBAAsB,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG;AACnF,SAAO,IAAI,WAAW,IAAI,SAAY;AACxC;AAEA,SAAS,gBAAgB,QAAuC;AAC9D,MAAI,OAAO,WAAW,EAAG,QAAO;AAChC,SAAO,OAAO,IAAI,CAAC,MAAM,EAAE,KAAK;AAClC;AAEA,SAAS,WAAW,SAAsC;AACxD,MAAI,QAAQ,cAAc,KAAM,QAAO;AACvC,MAAI,OAAO,QAAQ,UAAU,YAAY,QAAQ,MAAM,WAAW,EAAG,QAAO;AAC5E,SAAO,QAAQ;AACjB;AAEA,SAAS,mBAAmB,WAAsD;AAChF,MAAI,UAAU,WAAW,EAAG,QAAO;AACnC,SAAO,UAAU,IAAI,CAAC,MAAM,EAAE,QAAQ;AACxC;AAEA,SAAS,iBAAiB,gBAAgE;AACxF,MAAI,eAAe,WAAW,EAAG,QAAO;AACxC,SAAO,eAAe,IAAI,CAAC,MAAM;AAC/B,UAAM,MAA+B,CAAC;AACtC,QAAI,OAAO,IAAI;AACf,QAAI,EAAE,UAAU,GAAI,KAAI,OAAO,EAAE;AACjC,QAAI,qBAAqB;AACzB,QAAI,EAAE,wBAAwB,IAAI;AAChC,UAAI,eAAe;AAAA,QACjB,SAAS;AAAA,QACT,MAAM,EAAE;AAAA,MACV;AAAA,IACF;AACA,QAAI,cAAc,EAAE;AACpB,QAAI,EAAE,mBAAmB,UAAa,EAAE,mBAAmB,MAAM;AAC/D,UAAI,UAAU,EAAE;AAAA,IAClB;AACA,QAAI,EAAE,iBAAiB,OAAW,KAAI,aAAa,EAAE;AACrD,QAAI,EAAE,QAAQ,OAAW,KAAI,MAAM,EAAE;AACrC,WAAO;AAAA,EACT,CAAC;AACH;AAEA,SAAS,cAAc,aAA0D;AAC/E,MAAI,YAAY,WAAW,EAAG,QAAO;AAIrC,SAAO,YAAY,IAAI,CAAC,MAAM;AAC5B,UAAM,MAA+B,CAAC;AACtC,QAAI,OAAO,IAAI;AACf,QAAI,EAAE,SAAS,OAAW,KAAI,WAAW,EAAE;AAC3C,QAAI,YAAY,EAAE;AAClB,QAAI,EAAE,YAAY,UAAa,EAAE,YAAY,KAAM,KAAI,UAAU,EAAE;AACnE,QAAI,EAAE,gBAAgB,OAAW,KAAI,cAAc,EAAE;AACrD,UAAM,MAA+B,EAAE,SAAS,gBAAgB,MAAM,EAAE,aAAa;AACrF,QAAI,EAAE,QAAQ,OAAW,KAAI,MAAM,EAAE;AACrC,QAAI,WAAW;AACf,WAAO;AAAA,EACT,CAAC;AACH;AAEA,SAAS,cAAc,WAAuD;AAC5E,MAAI,UAAU,WAAW,EAAG,QAAO;AAInC,SAAO,UAAU,IAAI,CAAC,MAAM;AAC1B,UAAM,MAA+B,CAAC;AACtC,QAAI,OAAO,IAAI;AACf,UAAM,WAAW,gBAAgB,EAAE,QAAQ,EAAE,YAAY;AACzD,QAAI,aAAa,OAAW,KAAI,WAAW;AAC3C,QAAI,YAAY,EAAE;AAClB,QAAI,EAAE,YAAY,UAAa,EAAE,YAAY,KAAM,KAAI,UAAU,EAAE;AACnE,UAAM,cAAc,4BAA4B,EAAE,aAAa,EAAE,KAAK;AACtE,QAAI,gBAAgB,OAAW,KAAI,cAAc;AACjD,UAAM,MAA+B;AAAA,MACnC,SAAS;AAAA,MACT,MAAM,EAAE;AAAA,IACV;AACA,QAAI,EAAE,QAAQ,OAAW,KAAI,MAAM,EAAE;AACrC,QAAI,WAAW;AACf,WAAO;AAAA,EACT,CAAC;AACH;AAEA,SAAS,gBACP,QACA,cACoB;AACpB,MAAI,WAAW,UAAa,iBAAiB,OAAW,QAAO;AAC/D,MAAI,WAAW,UAAa,iBAAiB,OAAW,QAAO,GAAG,MAAM,KAAK,YAAY;AACzF,SAAO,UAAU;AACnB;AAEA,SAAS,4BACP,aACA,OACoB;AAGpB,MAAI,UAAU,UAAa,gBAAgB,OAAW,QAAO,UAAU,KAAK,KAAK,WAAW;AAC5F,MAAI,UAAU,OAAW,QAAO,UAAU,KAAK;AAC/C,SAAO;AACT;AAEA,SAAS,YAAY,QAAgD;AACnE,MAAI,OAAO,WAAW,EAAG,QAAO;AAChC,SAAO,OAAO,IAAI,CAAC,MAAM,GAAG,EAAE,KAAK,KAAK,EAAE,MAAM,KAAK,EAAE,IAAI,GAAG;AAChE;AAEA,SAAS,uBAAuB,cAAiD;AAC/E,SAAO,aAAa,IAAI,CAAC,MAAM;AAC7B,UAAM,MAA+B,CAAC;AAItC,QAAI,OAAO,IAAI;AACf,QAAI,WAAW,EAAE;AACjB,QAAI,YAAY,EAAE;AAClB,QAAI,EAAE,YAAY,UAAa,EAAE,YAAY,KAAM,KAAI,UAAU,EAAE;AACnE,UAAM,cAAc,+BAA+B,EAAE,OAAO,EAAE,WAAW;AACzE,QAAI,gBAAgB,OAAW,KAAI,cAAc;AACjD,UAAM,MAA+B,EAAE,SAAS,gBAAgB,MAAM,EAAE,aAAa;AACrF,QAAI,EAAE,QAAQ,OAAW,KAAI,MAAM,EAAE;AACrC,QAAI,WAAW;AACf,WAAO;AAAA,EACT,CAAC;AACH;AAEA,SAAS,+BACP,OACA,aACoB;AACpB,MAAI,UAAU,UAAa,gBAAgB,OAAW,QAAO,UAAU,KAAK,KAAK,WAAW;AAC5F,MAAI,UAAU,OAAW,QAAO,UAAU,KAAK;AAC/C,SAAO;AACT;AAEA,SAAS,kBAAkB,cAAgD;AACzE,SAAO,aAAa,IAAI,CAAC,MAAM;AAC7B,UAAM,MAA+B,CAAC;AACtC,QAAI,OAAO,IAAI;AACf,QAAI,OAAO,EAAE;AACb,QAAI,EAAE,cAAc,QAAW;AAC7B,UAAI,YAAY,EAAE,SAAS,gBAAgB,MAAM,EAAE,UAAU;AAAA,IAC/D;AACA,QAAI,gBAAgB,EAAE;AACtB,QAAI,EAAE,QAAQ,OAAW,KAAI,MAAM,EAAE;AACrC,QAAI,EAAE,QAAQ,QAAW;AACvB,UAAI,aAAa,EAAE,SAAS,iBAAiB,YAAY,OAAO,OAAO,EAAE,IAAI;AAAA,IAC/E;AACA,QAAI,EAAE,cAAc,UAAa,EAAE,UAAU,SAAS,GAAG;AACvD,UAAI,SAAS,EAAE,UAAU,IAAI,CAAC,UAAU,EAAE,SAAS,UAAU,KAAK,EAAE;AAAA,IACtE;AACA,WAAO;AAAA,EACT,CAAC;AACH;AAEA,SAAS,aAAa,SAAsC;AAC1D,SAAO,QAAQ,IAAI,CAAC,MAAM;AACxB,UAAM,MAA+B,CAAC;AACtC,QAAI,OAAO,IAAI;AACf,QAAI,OAAO,EAAE;AACb,QAAI,EAAE,aAAa,QAAW;AAC5B,UAAI,WAAW,EAAE,SAAS,gBAAgB,MAAM,EAAE,SAAS;AAAA,IAC7D;AACA,QAAI,EAAE,iBAAiB,OAAW,KAAI,aAAa,EAAE;AACrD,QAAI,EAAE,mBAAmB,OAAW,KAAI,MAAM,EAAE;AAChD,QAAI,EAAE,mBAAmB,QAAW;AAGlC,UAAI,oBAAoB;AAAA,QACtB,SAAS;AAAA,QACT,SAAS,EAAE;AAAA,MACb;AAAA,IACF;AACA,WAAO;AAAA,EACT,CAAC;AACH;AAEA,SAAS,iBAAiB,SAAsC;AAC9D,SAAO,QAAQ,IAAI,CAAC,MAAM;AACxB,UAAM,MAA+B,CAAC;AAItC,QAAI,OAAO,IAAI;AACf,QAAI,iBAAiB;AACrB,QAAI,OAAO,EAAE;AACb,QAAI,aAAa,EAAE;AACnB,QAAI,EAAE,WAAW,QAAW;AAC1B,UAAI,YAAY,EAAE,SAAS,gBAAgB,MAAM,EAAE,OAAO;AAAA,IAC5D;AACA,QAAI,qBAAqB,EAAE;AAC3B,QAAI,EAAE,cAAc,QAAW;AAC7B,UAAI,gBAAgB,EAAE;AAAA,IACxB,WAAW,EAAE,eAAe,QAAW;AACrC,UAAI,cAAc,EAAE;AAAA,IACtB;AACA,QAAI,EAAE,QAAQ,OAAW,KAAI,MAAM,EAAE;AACrC,QAAI,EAAE,gBAAgB,UAAa,EAAE,YAAY,SAAS,GAAG;AAC3D,UAAI,SAAS,EAAE,YAAY,IAAI,CAAC,UAAU,EAAE,SAAS,UAAU,KAAK,EAAE;AAAA,IACxE;AACA,WAAO;AAAA,EACT,CAAC;AACH;;;ACpbO,IAAM,cAAN,cAA0B,MAAM;AAAA,EAC5B;AAAA,EAET,YAAY,SAAiB,SAA2D;AACtF,UAAM,SAAS,EAAE,OAAO,SAAS,MAAM,CAAC;AACxC,SAAK,OAAO;AACZ,SAAK,SAAS,SAAS;AAAA,EACzB;AACF;AAOO,SAAS,cAAc,MAAe,UAAyB,CAAC,GAAoB;AACzF,QAAM,MAAM,KAAK,MAAM,KAAK,UAAU,IAAI,CAAC;AAC3C,MAAI,QAAQ,oBAAoB,OAAO;AACrC,QAAI,OAAO,EAAE,GAAG,IAAI,MAAM,YAAW,oBAAI,KAAK,GAAE,YAAY,EAAE;AAAA,EAChE;AACA,SAAO;AACT;AAaO,SAAS,cAAc,MAAgC;AAC5D,QAAM,SAAS,SAAS,IAAI;AAC5B,MAAI,CAAC,OAAO,IAAI;AACd,UAAM,IAAI,YAAY,8CAA8C,EAAE,QAAQ,OAAO,OAAO,CAAC;AAAA,EAC/F;AACA,SAAO,KAAK,MAAM,KAAK,UAAU,OAAO,IAAI,CAAC;AAC/C;;;ACpCO,SAAS,yBAAsD,SAAe;AACnF,QAAM,oBAAoB,QAAQ,KAAK,SAAS,sBAAsB;AACtE,QAAM,sBAAsB,QAAQ,KAAK,SAAS,wBAAwB;AAC1E,QAAM,aAAa,QAAQ,QAAQ,cAAc;AAEjD,QAAM,sBAAsB,qBAAqB,mBAAmB,OAAO;AAC3E,QAAM,iBAAiB,uBAAuB,YAAY,OAAO;AACjE,QAAM,aAAa,CAAC,cAAc,QAAQ,QAAQ,UAAU;AAE5D,MAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,YAAY;AAC1D,WAAO;AAAA,EACT;AAEA,QAAM,MAAyB,EAAE,GAAG,QAAQ;AAE5C,MAAI,qBAAqB;AACvB,QAAI,iBAAiB,QAAQ,eAAe,IAAI,iBAAiB;AAAA,EACnE;AAEA,MAAI,gBAAgB;AAClB,QAAI,YAAY,QAAQ,UAAU,IAAI,UAAU;AAAA,EAClD;AAEA,MAAI,YAAY;AACd,UAAM,EAAE,OAAO,OAAO,GAAG,KAAK,IAAI,QAAQ;AAC1C,QAAI,UAAU;AAAA,EAChB;AAEA,SAAO;AACT;AAEA,SAAS,mBAAmB,SAAqC;AAC/D,SAAO,QAAQ,eAAe,KAAK,CAAC,MAAM,EAAE,iBAAiB,MAAS;AACxE;AAEA,SAAS,YAAY,SAAqC;AACxD,SAAO,QAAQ,UAAU,KAAK,CAAC,MAAM,EAAE,UAAU,MAAS;AAC5D;AAEA,SAAS,kBAAuD,MAAY;AAC1E,MAAI,KAAK,iBAAiB,OAAW,QAAO;AAC5C,QAAM,EAAE,cAAc,OAAO,GAAG,KAAK,IAAI;AACzC,SAAO;AACT;AAEA,SAAS,WAAyC,MAAY;AAC5D,MAAI,KAAK,UAAU,OAAW,QAAO;AACrC,QAAM,EAAE,OAAO,OAAO,GAAG,KAAK,IAAI;AAClC,SAAO;AACT;;;ACrFO,SAAS,mBACd,MACA,IACA,UACsC;AACtC,MAAI,SAAS,GAAI,QAAO,CAAC;AACzB,QAAM,SAAS,oBAAI,IAAyC;AAC5D,aAAW,KAAK,SAAU,QAAO,IAAI,EAAE,MAAM,CAAC;AAC9C,QAAM,QAAuC,CAAC;AAC9C,QAAM,UAAU,oBAAI,IAAY,CAAC,IAAI,CAAC;AACtC,MAAI,MAAM;AACV,SAAO,QAAQ,IAAI;AACjB,UAAM,OAAO,OAAO,IAAI,GAAG;AAC3B,QAAI,CAAC,KAAM,QAAO;AAClB,QAAI,QAAQ,IAAI,KAAK,EAAE,EAAG,QAAO;AACjC,UAAM,KAAK,IAAI;AACf,YAAQ,IAAI,KAAK,EAAE;AACnB,UAAM,KAAK;AAAA,EACb;AACA,SAAO;AACT;;;AClBO,IAAM,mBAAgD;AAAA,EAC3D,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,QAAQ,MAAwB;AAC9B,UAAM,UAAU;AAChB,WAAO;AAAA,MACL,GAAG;AAAA,MACH,eAAe;AAAA,MACf,gBAAgB,QAAQ,kBAAkB,CAAC;AAAA,MAC3C,aAAa,QAAQ,eAAe,CAAC;AAAA,MACrC,cAAc,QAAQ,gBAAgB,CAAC;AAAA,MACvC,QAAQ,QAAQ,UAAU,CAAC;AAAA,MAC3B,WAAW,QAAQ,aAAa,CAAC;AAAA,MACjC,cAAc,QAAQ,gBAAgB,CAAC;AAAA,MACvC,WAAW,QAAQ,aAAa,CAAC;AAAA,MACjC,SAAS,QAAQ,WAAW,CAAC;AAAA,MAC7B,SAAS,QAAQ,WAAW,CAAC;AAAA,IAC/B;AAAA,EACF;AACF;;;ACrBO,IAAM,mBAAgD;AAAA,EAC3D,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,QAAQ,MAAwB;AAC9B,UAAM,UAAU;AAChB,WAAO;AAAA,MACL,GAAG;AAAA,MACH,eAAe;AAAA,MACf,YAAY,QAAQ,cAAc,CAAC;AAAA,IACrC;AAAA,EACF;AACF;;;ACVO,IAAM,mBAAgD;AAAA,EAC3D,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,QAAQ,MAAwB;AAC9B,UAAM,UAAU;AAChB,WAAO;AAAA,MACL,GAAG;AAAA,MACH,eAAe;AAAA,MACf,iBAAiB,QAAQ,mBAAmB,CAAC;AAAA,IAC/C;AAAA,EACF;AACF;;;ACjBO,IAAM,mBAAgD;AAAA,EAC3D,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,QAAQ,MAAwB;AAC9B,WAAO;AAAA,MACL,GAAG;AAAA,MACH,eAAe;AAAA,IACjB;AAAA,EACF;AACF;;;ACsBO,IAAM,aAAqD;AAAA,EAChE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ACzBO,IAAM,iBAAN,cAA6B,MAAM;AAAA,EACxC,YAAY,SAAiB,SAA+B;AAC1D,UAAM,SAAS,OAAO;AACtB,SAAK,OAAO;AAAA,EACd;AACF;AASO,SAAS,eAAe,MAAe,eAAgC;AAC5E,QAAM,gBAAgB,KAAK;AAC3B,MAAI,kBAAkB,eAAe;AACnC,WAAO,KAAK,MAAM,KAAK,UAAU,IAAI,CAAC;AAAA,EACxC;AACA,QAAM,QAAQ,mBAAmB,eAAe,eAAe,UAAU;AACzE,MAAI,CAAC,OAAO;AACV,UAAM,IAAI,eAAe,0BAA0B,aAAa,OAAO,aAAa,EAAE;AAAA,EACxF;AACA,MAAI,UAAmB,KAAK,MAAM,KAAK,UAAU,IAAI,CAAC;AACtD,aAAW,QAAQ,OAAO;AACxB,cAAU,KAAK,QAAQ,OAAO;AAAA,EAChC;AACA,SAAO;AACT;;;ACyFO,IAAM,eAAN,cAA2B,MAAM;AAAA,EACtC,YAAY,SAAiB,SAA+B;AAC1D,UAAM,SAAS,OAAO;AACtB,SAAK,OAAO;AAAA,EACd;AACF;AAGO,IAAM,gBAAN,cAA4B,aAAa;AAAA,EAC9C,YAAY,SAAiB,SAA+B;AAC1D,UAAM,SAAS,OAAO;AACtB,SAAK,OAAO;AAAA,EACd;AACF;AAUO,IAAM,gBAAN,cAA4B,aAAa;AAAA,EACrC;AAAA,EAET,YAAY,SAAiB,SAAwD;AACnF,UAAM,SAAS,EAAE,OAAO,SAAS,MAAM,CAAC;AACxC,SAAK,OAAO;AACZ,SAAK,iBAAiB,SAAS;AAAA,EACjC;AACF;;;AC3FA,SAAS,SAAS,OAAkD;AAClE,SAAO,OAAO,UAAU,YAAY,UAAU;AAChD;AAEA,SAAS,oBAAoB,OAA4C;AACvE,SACE,SAAS,KAAK,KACd,OAAO,MAAM,SAAS,YACtB,OAAO,MAAM,UAAU,YACvB,OAAO,MAAM,YAAY;AAE7B;AAEA,SAAS,uBAAuB,OAA+C;AAC7E,SACE,SAAS,KAAK,KACd,OAAO,MAAM,UAAU,YACvB,MAAM,QAAQ,MAAM,IAAI,KACxB,MAAM,KAAK;AAAA,IACT,CAAC,MAAe,SAAS,CAAC,KAAK,OAAO,EAAE,SAAS,YAAY,OAAO,EAAE,UAAU;AAAA,EAClF;AAEJ;AAEA,SAAS,aAAa,OAAqC;AACzD,SACE,SAAS,KAAK,KACd,OAAO,MAAM,iBAAiB,YAC9B,OAAO,MAAM,UAAU,YACvB,OAAO,MAAM,YAAY,YACzB,OAAO,MAAM,YAAY;AAE7B;AAEA,SAAS,WAAW,OAAmC;AACrD,SACE,SAAS,KAAK,KACd,OAAO,MAAM,UAAU,aACtB,MAAM,SAAS,OACd,MAAM,SAAS,OACf,MAAM,SAAS,OACf,MAAM,SAAS,OACf,MAAM,SAAS;AAErB;AASO,SAAS,mBAAmB,OAA2C;AAC5E,MAAI,CAAC,SAAS,KAAK,KAAK,OAAO,MAAM,iBAAiB,SAAU,QAAO;AACvE,MAAI,MAAM,cAAc,QAAW;AACjC,QAAI,CAAC,MAAM,QAAQ,MAAM,SAAS,KAAK,CAAC,MAAM,UAAU,MAAM,mBAAmB,GAAG;AAClF,aAAO;AAAA,IACT;AAAA,EACF;AACA,MAAI,MAAM,kBAAkB,UAAa,CAAC,uBAAuB,MAAM,aAAa,GAAG;AACrF,WAAO;AAAA,EACT;AACA,MAAI,MAAM,eAAe,UAAa,CAAC,aAAa,MAAM,UAAU,EAAG,QAAO;AAC9E,MAAI,MAAM,SAAS,UAAa,CAAC,WAAW,MAAM,IAAI,EAAG,QAAO;AAChE,SAAO;AACT;AAWO,SAAS,2BACd,iBACqB;AACrB,QAAM,UAAU,OAAO,QAAQ,eAAe,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,MAAM,QAAQ,CAAC;AAC/E,QAAM,QAAQ,QAAQ,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,MAAM,MAAM,OAAO,CAAC;AAC/D,MAAI,UAAU,EAAG,QAAO,CAAC;AACzB,SAAO,QACJ,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,EAAE,MAAM,OAAO,SAAS,KAAK,MAAO,QAAQ,QAAS,GAAI,IAAI,GAAG,EAAE,EAC1F,KAAK,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,IAAI,CAAC;AACrE;AAGO,SAAS,iBAAiB,cAAkC;AACjE,QAAM,OAAO,KAAK,IAAI,GAAG,KAAK,MAAM,YAAY,CAAC;AACjD,SAAO;AAAA,IACL,cAAc;AAAA,IACd,OAAO,KAAK,MAAM,OAAO,IAAI;AAAA,IAC7B,SAAS,KAAK,MAAO,OAAO,OAAQ,EAAE;AAAA,IACtC,SAAS,OAAO;AAAA,EAClB;AACF;AAWO,IAAM,0BAA0B;AAEhC,IAAM,yBAAyB;AAM/B,IAAM,uBAAuB,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG;AAEjE,SAAS,aAAa,OAA8B;AAClD,MAAI,SAAS,qBAAqB,EAAG,QAAO;AAC5C,MAAI,SAAS,qBAAqB,EAAG,QAAO;AAC5C,MAAI,SAAS,qBAAqB,EAAG,QAAO;AAC5C,MAAI,SAAS,qBAAqB,EAAG,QAAO;AAC5C,SAAO;AACT;AAWO,SAAS,eAAe,OAA4B;AACzD,QAAM,YAAsB,CAAC;AAC7B,MAAI,MAAM,kBAAkB,QAAW;AACrC,UAAM,IAAI,KAAK,IAAI,GAAG,MAAM,aAAa;AACzC,cAAU,KAAK,MAAM,KAAK,IAAI,GAAG,IAAI,uBAAuB,CAAC;AAAA,EAC/D;AACA,MAAI,MAAM,kBAAkB,QAAW;AACrC,UAAM,QAAQ,KAAK,IAAI,GAAG,MAAM,aAAa,IAAI;AACjD,cAAU,KAAK,MAAM,KAAK,IAAI,GAAG,QAAQ,sBAAsB,CAAC;AAAA,EAClE;AACA,QAAM,QACJ,UAAU,WAAW,IACjB,IACA,KAAK,MAAM,UAAU,OAAO,CAAC,KAAK,MAAM,MAAM,GAAG,CAAC,IAAI,UAAU,MAAM;AAC5E,SAAO,EAAE,MAAM,aAAa,KAAK,GAAG,MAAM;AAC5C;;;ACvNA,IAAM,QAAQ;AACd,IAAM,MAAM;AACZ,IAAM,QAAQ,QAAQ,MAAM;AAE5B,IAAM,aAAa;AACnB,IAAM,cAAc;AACpB,IAAM,eAAe;AACrB,IAAM,cAAc;AAGpB,IAAM,kBAAkB,CAAC,WAAW,WAAW,WAAW,WAAW,WAAW,SAAS;AACzF,IAAM,cAAc;AAGpB,IAAM,gBAAgB;AAGtB,IAAM,cAAc,CAAC,WAAW,WAAW,WAAW,WAAW,SAAS;AAG1E,IAAM,OAAO;AACb,IAAM,aAAa;AACnB,IAAM,gBAAgB;AAEtB,IAAM,oBAAoB,KAAK;AAG/B,SAAS,UAAU,OAAuB;AACxC,SAAO,MACJ,QAAQ,MAAM,OAAO,EACrB,QAAQ,MAAM,MAAM,EACpB,QAAQ,MAAM,MAAM,EACpB,QAAQ,MAAM,QAAQ,EACtB,QAAQ,MAAM,OAAO;AAC1B;AAGA,SAAS,YAAY,OAAuB;AAC1C,QAAM,SAAS,OAAO,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,CAAC;AACjD,QAAM,UAAU,OAAO,QAAQ,yBAAyB,GAAG;AAC3D,SAAO,QAAQ,IAAI,IAAI,OAAO,KAAK;AACrC;AAGA,SAAS,OAAO,OAAuB;AACrC,SAAO,KAAK,MAAM,QAAQ,GAAG,IAAI;AACnC;AASA,SAAS,KAAK,GAAW,GAAW,SAAiB,MAA2B;AAC9E,QAAM,SAAS,KAAK,WAAW,SAAY,iBAAiB,OAAO,KAAK,MAAM,CAAC,MAAM;AACrF,QAAM,SAAS,KAAK,WAAW,SAAY,iBAAiB,KAAK,MAAM,MAAM;AAC7E,SACE,YAAY,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,kBAAkB,WAAW,gBACrD,OAAO,KAAK,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,MAAM,GAAG,MAAM,IACnE,UAAU,OAAO,CAAC;AAEzB;AAEA,SAAS,QAAQ,GAAW,GAAW,OAAuB;AAC5D,SAAO,KAAK,GAAG,GAAG,OAAO,EAAE,MAAM,IAAI,MAAM,aAAa,QAAQ,IAAI,CAAC;AACvE;AAEA,SAAS,KAAK,GAAW,GAAW,GAAW,GAAW,MAAc,KAAK,GAAW;AACtF,QAAM,SAAS,KAAK,IAAI,QAAQ,OAAO,EAAE,CAAC,MAAM;AAChD,SACE,YAAY,OAAO,OAAO,CAAC,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,YAAY,OAAO,OAAO,CAAC,CAAC,CAAC,aAChE,OAAO,CAAC,CAAC,WAAW,IAAI,IAAI,MAAM;AAEjD;AASA,SAAS,iBAAiB,WAA4D;AACpF,QAAM,WAAW,UAAU,MAAM,GAAG,aAAa,EAAE,IAAI,CAAC,GAAG,OAAO;AAAA,IAChE,MAAM,EAAE;AAAA,IACR,SAAS,EAAE;AAAA,IACX,OAAO,gBAAgB,CAAC,KAAK;AAAA,EAC/B,EAAE;AACF,QAAM,OAAO,UAAU,MAAM,aAAa;AAC1C,MAAI,KAAK,SAAS,GAAG;AACnB,UAAM,UAAU,OAAO,KAAK,OAAO,CAAC,KAAK,MAAM,MAAM,EAAE,SAAS,CAAC,CAAC;AAClE,aAAS,KAAK,EAAE,MAAM,SAAS,SAAS,OAAO,YAAY,CAAC;AAAA,EAC9D;AACA,SAAO,SAAS,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC;AAC7C;AAGA,SAAS,UAAU,OAAe,KAAqB;AACrD,MAAI,SAAS,EAAG,QAAO;AACvB,SAAO,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,KAAM,QAAQ,MAAO,CAAC,CAAC,CAAC;AAC9D;AASO,SAAS,kBAAkB,UAAoC;AACpE,QAAM,eAAe,SAAS,cAAc,UAAa,SAAS,UAAU,SAAS;AACrF,QAAM,mBACJ,SAAS,kBAAkB,UAAa,SAAS,cAAc,KAAK,SAAS;AAC/E,QAAM,gBAAgB,SAAS,eAAe;AAC9C,QAAM,UAAU,SAAS,SAAS;AAClC,MAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,QAAS,QAAO;AAE7E,QAAM,QAAkB,CAAC;AACzB,MAAI,IAAI;AAER,MAAI,gBAAgB,SAAS,WAAW;AACtC,UAAM,WAAW,iBAAiB,SAAS,SAAS;AACpD,UAAM,QAAQ,SAAS,OAAO,CAAC,KAAK,MAAM,MAAM,EAAE,SAAS,CAAC;AAE5D,UAAM,KAAK,QAAQ,KAAK,IAAI,IAAI,WAAW,CAAC;AAC5C,SAAK;AAEL,QAAI,IAAI;AACR,eAAW,WAAW,UAAU;AAC9B,YAAM,IAAK,QAAQ,UAAU,QAAS;AACtC,YAAM,KAAK,KAAK,GAAG,GAAG,GAAG,IAAI,QAAQ,KAAK,CAAC;AAC3C,WAAK;AAAA,IACP;AACA,SAAK;AAEL,UAAM,cAAc,QAAQ;AAC5B,aAAS,QAAQ,CAAC,SAAS,MAAM;AAC/B,YAAM,KAAK,MAAO,IAAI,IAAK;AAC3B,YAAM,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC,IAAI;AACnC,YAAM,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,QAAQ,OAAO,CAAC,CAAC;AACjD,YAAM;AAAA,QACJ,KAAK,KAAK,IAAI,KAAK,GAAG,GAAG,QAAQ,IAAI,IAAI,OAAO,QAAQ,OAAO,CAAC,KAAK;AAAA,UACnE,MAAM;AAAA,UACN,MAAM;AAAA,QACR,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AACD,SAAK,KAAK,KAAK,SAAS,SAAS,CAAC,IAAI,KAAK;AAAA,EAC7C;AAEA,MAAI,oBAAoB,SAAS,eAAe;AAC9C,UAAM,OAAO,SAAS,cAAc,KAAK,MAAM,CAAC,iBAAiB;AACjE,UAAM,MAAM,KAAK,OAAO,CAAC,GAAG,MAAM,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,CAAC;AAEzD,UAAM;AAAA,MACJ,QAAQ,KAAK,IAAI,IAAI,sBAAmB,YAAY,SAAS,cAAc,KAAK,CAAC,EAAE;AAAA,IACrF;AACA,SAAK;AAEL,SAAK,QAAQ,CAAC,KAAK,MAAM;AACvB,YAAM,SAAS,KAAK,MAAM,IAAI,aAAa;AAC3C,YAAM,MAAM,IAAI;AAChB,YAAM,OAAO,YAAY,UAAU,IAAI,OAAO,GAAG,CAAC,KAAK,YAAY,CAAC;AACpE,YAAM,KAAK,KAAK,MAAM,SAAS,YAAY,IAAI,MAAM,YAAY,MAAM,MAAM,MAAM,GAAG,CAAC;AAAA,IACzF,CAAC;AACD,SAAK,gBAAgB,cAAc,aAAa,QAAQ;AAAA,EAC1D;AAEA,MAAI,iBAAiB,SAAS;AAC5B,UAAM,QAAQ,MAAM,QAAQ;AAC5B,QAAI,iBAAiB,SAAS,YAAY;AACxC,YAAM,IAAI,SAAS;AACnB,YAAM,KAAK,QAAQ,KAAK,IAAI,IAAI,aAAa,CAAC;AAC9C,YAAM;AAAA,QACJ,KAAK,KAAK,IAAI,IAAI,GAAG,YAAY,EAAE,KAAK,CAAC,KAAK,OAAO,EAAE,OAAO,CAAC,KAAK;AAAA,UAClE,MAAM;AAAA,UACN,MAAM;AAAA,UACN,QAAQ;AAAA,QACV,CAAC;AAAA,MACH;AAAA,IACF;AACA,QAAI,WAAW,SAAS,MAAM;AAC5B,YAAM,OAAO,SAAS;AACtB,YAAM,KAAK,QAAQ,OAAO,IAAI,IAAI,MAAM,CAAC;AACzC,YAAM,UAAU,IAAI;AACpB,YAAM;AAAA,QACJ,eAAe,OAAO,QAAQ,EAAE,CAAC,SAAS,OAAO,OAAO,CAAC,kBAAkB,YAAY;AAAA,MACzF;AACA,YAAM;AAAA,QACJ,YAAY,OAAO,QAAQ,EAAE,CAAC,QAAQ,OAAO,OAAO,CAAC,kBAAkB,WAAW,sGAEjD,UAAU,KAAK,IAAI,CAAC;AAAA,MACvD;AACA,YAAM;AAAA,QACJ,KAAK,QAAQ,IAAI,UAAU,GAAG,SAAS,OAAO,KAAK,KAAK,CAAC,IAAI;AAAA,UAC3D,MAAM;AAAA,UACN,MAAM;AAAA,QACR,CAAC;AAAA,MACH;AAAA,IACF;AACA,SAAK;AAAA,EACP;AAIA,QAAM;AAAA,IACJ,KAAK,QAAQ,KAAK,IAAI,IAAI,eAAe,SAAS,aAAa,MAAM,GAAG,EAAE,CAAC,IAAI;AAAA,MAC7E,MAAM;AAAA,MACN,MAAM;AAAA,MACN,QAAQ;AAAA,IACV,CAAC;AAAA,EACH;AACA,OAAK;AAEL,QAAM,SAAS,IAAI,MAAM;AACzB,SACE,kDAAkD,OAAO,KAAK,CAAC,aAAa,OAAO,MAAM,CAAC,kBAC1E,OAAO,KAAK,CAAC,IAAI,OAAO,MAAM,CAAC,iFACX,MAAM,KAAK,EAAE,CAAC;AAEtD;;;ACtNO,IAAM,4BAA4B;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAKO,IAAM,kBAAkB,IAAI,OAAO;AAGnC,IAAM,sBAAsB;AAG5B,IAAM,mBAAmB;AAGzB,IAAM,mBAAsD;AAAA,EACjE,cAAc;AAAA,EACd,aAAa;AAAA,EACb,cAAc;AAAA,EACd,aAAa;AACf;AAYA,SAAS,MAAM,GAAe,GAAmB;AAC/C,SAAQ,EAAE,CAAC,KAAM,IAAK,EAAE,IAAI,CAAC;AAC/B;AAEA,SAAS,MAAM,GAAe,GAAmB;AAE/C,UAAS,EAAE,CAAC,KAAM,KAAO,EAAE,IAAI,CAAC,KAAM,KAAO,EAAE,IAAI,CAAC,KAAM,IAAK,EAAE,IAAI,CAAC,OAAQ;AAChF;AAEA,SAAS,MAAM,GAAe,GAAmB;AAC/C,SAAO,EAAE,CAAC,IAAM,EAAE,IAAI,CAAC,KAAM;AAC/B;AAEA,SAAS,MAAM,GAAe,GAAmB;AAC/C,SAAO,EAAE,CAAC,IAAM,EAAE,IAAI,CAAC,KAAM,IAAM,EAAE,IAAI,CAAC,KAAM;AAClD;AAEA,SAAS,MAAM,GAAe,GAAmB;AAC/C,UAAQ,EAAE,CAAC,IAAM,EAAE,IAAI,CAAC,KAAM,IAAM,EAAE,IAAI,CAAC,KAAM,KAAO,EAAE,IAAI,CAAC,KAAM,QAAS;AAChF;AAGA,SAAS,MAAM,GAAe,GAAW,KAAqB;AAC5D,MAAI,IAAI;AACR,WAAS,IAAI,GAAG,IAAI,KAAK,IAAK,MAAK,OAAO,aAAa,EAAE,IAAI,CAAC,CAAE;AAChE,SAAO;AACT;AAEA,SAAS,WAAW,GAAe,KAAiC;AAClE,MAAI,EAAE,SAAS,IAAI,OAAQ,QAAO;AAClC,WAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,IAAK,KAAI,EAAE,CAAC,MAAM,IAAI,CAAC,EAAG,QAAO;AACjE,SAAO;AACT;AAEA,SAAS,OAAO,OAA0C;AACxD,MAAI,QAAQ;AACZ,aAAW,KAAK,MAAO,UAAS,EAAE;AAClC,QAAM,MAAM,IAAI,WAAW,KAAK;AAChC,MAAI,IAAI;AACR,aAAW,KAAK,OAAO;AACrB,QAAI,IAAI,GAAG,CAAC;AACZ,SAAK,EAAE;AAAA,EACT;AACA,SAAO;AACT;AAIA,IAAM,WAAW,CAAC,KAAM,KAAM,GAAI;AAClC,IAAM,UAAU,CAAC,KAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAI;AAE/D,SAAS,OAAO,GAAwB;AACtC,SAAO,WAAW,GAAG,QAAQ;AAC/B;AAEA,SAAS,MAAM,GAAwB;AACrC,SAAO,WAAW,GAAG,OAAO;AAC9B;AAEA,SAAS,MAAM,GAAwB;AAErC,SACE,EAAE,UAAU,KAAK,MAAM,GAAG,GAAG,CAAC,MAAM,WAAW,EAAE,CAAC,MAAM,MAAQ,EAAE,CAAC,MAAM,OAAS,EAAE,CAAC,MAAM;AAE/F;AAEA,SAAS,OAAO,GAAwB;AACtC,SAAO,EAAE,UAAU,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,UAAU,MAAM,GAAG,GAAG,CAAC,MAAM;AAC3E;AAOO,SAAS,gBAAgB,OAA6C;AAC3E,MAAI,OAAO,KAAK,EAAG,QAAO;AAC1B,MAAI,MAAM,KAAK,EAAG,QAAO;AACzB,MAAI,MAAM,KAAK,EAAG,QAAO;AACzB,MAAI,OAAO,KAAK,EAAG,QAAO;AAC1B,SAAO;AACT;AAKA,SAAS,UAAU,QAAyB;AAC1C,SAAO,UAAU,OAAQ,UAAU,OAAQ,WAAW,OAAQ,WAAW,OAAQ,WAAW;AAC9F;AAEA,SAAS,aAAa,GAAiC;AACrD,MAAI,IAAI;AACR,SAAO,IAAI,IAAI,EAAE,QAAQ;AACvB,QAAI,EAAE,CAAC,MAAM,KAAM;AACjB;AACA;AAAA,IACF;AACA,QAAI,SAAS,EAAE,IAAI,CAAC;AAEpB,WAAO,WAAW,OAAQ,IAAI,IAAI,EAAE,QAAQ;AAC1C;AACA,eAAS,EAAE,IAAI,CAAC;AAAA,IAClB;AACA,SAAK;AAEL,QACE,WAAW,OACX,WAAW,OACV,UAAU,OAAQ,UAAU,OAC7B,WAAW,GACX;AACA;AAAA,IACF;AACA,QAAI,WAAW,IAAM;AACrB,QAAI,IAAI,KAAK,EAAE,OAAQ;AACvB,UAAM,MAAM,MAAM,GAAG,CAAC;AACtB,QAAI,UAAU,MAAM,GAAG;AAErB,UAAI,IAAI,KAAK,EAAE,OAAQ,QAAO;AAC9B,aAAO,EAAE,QAAQ,MAAM,GAAG,IAAI,CAAC,GAAG,OAAO,MAAM,GAAG,IAAI,CAAC,GAAG,QAAQ,EAAE;AAAA,IACtE;AACA,SAAK;AAAA,EACP;AACA,SAAO;AACT;AAEA,SAAS,YAAY,GAAiC;AAEpD,MAAI,EAAE,SAAS,GAAI,QAAO;AAC1B,QAAM,QAAQ,MAAM,GAAG,EAAE;AACzB,QAAM,SAAS,MAAM,GAAG,EAAE;AAC1B,MAAI,SAAS;AAEb,MAAI,IAAI;AACR,SAAO,IAAI,MAAM,EAAE,QAAQ;AACzB,UAAM,MAAM,MAAM,GAAG,CAAC;AACtB,UAAM,OAAO,MAAM,GAAG,IAAI,GAAG,CAAC;AAC9B,QAAI,SAAS,QAAQ;AACnB,eAAS,MAAM,GAAG,IAAI,CAAC;AACvB;AAAA,IACF;AACA,QAAI,SAAS,UAAU,SAAS,OAAQ;AACxC,SAAK,KAAK;AAAA,EACZ;AACA,SAAO,EAAE,OAAO,QAAQ,OAAO;AACjC;AAGA,SAAS,iBAAiB,GAAe,GAAmB;AAC1D,SAAO,IAAI,EAAE,QAAQ;AACnB,UAAM,MAAM,EAAE,CAAC;AACf,SAAK;AACL,QAAI,QAAQ,EAAG;AACf,SAAK;AAAA,EACP;AACA,SAAO;AACT;AAEA,SAAS,YAAY,GAAiC;AACpD,MAAI,EAAE,SAAS,GAAI,QAAO;AAC1B,QAAM,QAAQ,MAAM,GAAG,CAAC;AACxB,QAAM,SAAS,MAAM,GAAG,CAAC;AAGzB,QAAM,SAAS,EAAE,EAAE;AACnB,MAAI,IAAI;AACR,MAAI,SAAS,IAAM,MAAK,KAAK,MAAO,SAAS,KAAQ;AACrD,MAAI,SAAS;AACb,SAAO,IAAI,EAAE,QAAQ;AACnB,UAAM,QAAQ,EAAE,CAAC;AACjB,QAAI,UAAU,GAAM;AACpB,QAAI,UAAU,IAAM;AAElB,UAAI,iBAAiB,GAAG,IAAI,CAAC;AAAA,IAC/B,WAAW,UAAU,IAAM;AAGzB,gBAAU;AACV,YAAM,cAAc,EAAE,IAAI,CAAC;AAC3B,WAAK;AACL,UAAI,cAAc,IAAM,MAAK,KAAK,MAAO,cAAc,KAAQ;AAC/D,WAAK;AACL,UAAI,iBAAiB,GAAG,CAAC;AAAA,IAC3B,OAAO;AACL;AAAA,IACF;AAAA,EACF;AACA,SAAO,EAAE,OAAO,QAAQ,QAAQ,KAAK,IAAI,QAAQ,CAAC,EAAE;AACtD;AAEA,SAAS,aAAa,GAAiC;AACrD,MAAI,EAAE,SAAS,GAAI,QAAO;AAC1B,QAAM,SAAS,MAAM,GAAG,IAAI,CAAC;AAC7B,MAAI,WAAW,QAAQ;AAErB,UAAM,QAAQ,MAAM,GAAG,EAAE,IAAI;AAC7B,UAAM,SAAS,MAAM,GAAG,EAAE,IAAI;AAC9B,UAAM,YAAY,EAAE,EAAE,IAAK,OAAU;AACrC,QAAI,SAAS;AACb,QAAI,UAAU;AACZ,eAAS;AACT,UAAI,IAAI;AACR,aAAO,IAAI,KAAK,EAAE,QAAQ;AACxB,cAAM,SAAS,MAAM,GAAG,GAAG,CAAC;AAC5B,cAAM,OAAO,MAAM,GAAG,IAAI,CAAC;AAC3B,YAAI,WAAW,OAAQ,WAAU;AACjC,aAAK,IAAI,QAAQ,OAAO;AAAA,MAC1B;AACA,eAAS,KAAK,IAAI,QAAQ,CAAC;AAAA,IAC7B;AACA,WAAO,EAAE,OAAO,QAAQ,OAAO;AAAA,EACjC;AACA,MAAI,WAAW,QAAQ;AAGrB,UAAM,QAAQ,MAAM,GAAG,EAAE,IAAI;AAC7B,UAAM,SAAS,MAAM,GAAG,EAAE,IAAI;AAC9B,WAAO,EAAE,OAAO,QAAQ,QAAQ,EAAE;AAAA,EACpC;AACA,MAAI,WAAW,QAAQ;AAGrB,UAAM,OAAO,MAAM,GAAG,EAAE;AACxB,UAAM,SAAS,OAAO,SAAU;AAChC,UAAM,UAAW,QAAQ,KAAM,SAAU;AACzC,WAAO,EAAE,OAAO,QAAQ,QAAQ,EAAE;AAAA,EACpC;AACA,SAAO;AACT;AAOO,SAAS,cAAc,OAAmB,MAA2C;AAC1F,UAAQ,MAAM;AAAA,IACZ,KAAK;AACH,aAAO,aAAa,KAAK;AAAA,IAC3B,KAAK;AACH,aAAO,YAAY,KAAK;AAAA,IAC1B,KAAK;AACH,aAAO,YAAY,KAAK;AAAA,IAC1B,KAAK;AACH,aAAO,aAAa,KAAK;AAAA,EAC7B;AACF;AAIA,SAAS,kBAAkB,GAA2B;AACpD,QAAM,MAAoB,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC;AAC3C,MAAI,IAAI;AACR,SAAO,IAAI,IAAI,EAAE,QAAQ;AACvB,QAAI,EAAE,CAAC,MAAM,IAAM;AACnB,QAAI,SAAS,EAAE,IAAI,CAAC;AACpB,QAAI,cAAc;AAClB,WAAO,WAAW,OAAQ,IAAI,IAAI,EAAE,QAAQ;AAC1C;AACA,eAAS,EAAE,IAAI,CAAC;AAAA,IAClB;AAEA,QAAI,MAAM,YAAa,KAAI,KAAK,EAAE,SAAS,aAAa,CAAC,CAAC;AAC1D,kBAAc;AACd,SAAK;AACL,QAAI,WAAW,OAAS,UAAU,OAAQ,UAAU,OAAS,WAAW,GAAM;AAC5E,UAAI,KAAK,EAAE,SAAS,aAAa,CAAC,CAAC;AACnC;AAAA,IACF;AACA,QAAI,WAAW,KAAM;AAEnB,UAAI,KAAK,EAAE,SAAS,WAAW,CAAC;AAChC;AAAA,IACF;AACA,QAAI,IAAI,KAAK,EAAE,QAAQ;AACrB,UAAI,KAAK,EAAE,SAAS,WAAW,CAAC;AAChC;AAAA,IACF;AACA,UAAM,MAAM,MAAM,GAAG,CAAC;AACtB,UAAM,aAAa,IAAI;AAGvB,UAAM,aAAa,WAAW,OAAQ,WAAW,OAAQ,WAAW,OAAQ,WAAW;AACvF,QAAI,CAAC,WAAY,KAAI,KAAK,EAAE,SAAS,aAAa,UAAU,CAAC;AAC7D,QAAI;AAAA,EACN;AACA,SAAO,OAAO,GAAG;AACnB;AAEA,IAAM,sBAAsB,oBAAI,IAAI,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,MAAM,CAAC;AAE5E,SAAS,iBAAiB,GAA2B;AACnD,QAAM,MAAoB,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC;AAC3C,MAAI,IAAI;AACR,SAAO,IAAI,MAAM,EAAE,QAAQ;AACzB,UAAM,MAAM,MAAM,GAAG,CAAC;AACtB,UAAM,OAAO,MAAM,GAAG,IAAI,GAAG,CAAC;AAC9B,UAAM,MAAM,IAAI,KAAK;AACrB,QAAI,MAAM,EAAE,QAAQ;AAClB,UAAI,KAAK,EAAE,SAAS,CAAC,CAAC;AACtB;AAAA,IACF;AACA,QAAI,CAAC,oBAAoB,IAAI,IAAI,EAAG,KAAI,KAAK,EAAE,SAAS,GAAG,GAAG,CAAC;AAC/D,QAAI;AAAA,EACN;AACA,SAAO,OAAO,GAAG;AACnB;AAEA,SAAS,iBAAiB,GAA2B;AACnD,MAAI,EAAE,SAAS,GAAI,QAAO;AAC1B,QAAM,SAAS,EAAE,EAAE;AACnB,MAAI,YAAY;AAChB,MAAI,SAAS,IAAM,cAAa,KAAK,MAAO,SAAS,KAAQ;AAC7D,QAAM,MAAoB,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;AACnD,MAAI,IAAI;AACR,SAAO,IAAI,EAAE,QAAQ;AACnB,UAAM,QAAQ,EAAE,CAAC;AACjB,QAAI,UAAU,IAAM;AAClB,UAAI,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC,CAAC;AAC7B;AAAA,IACF;AACA,QAAI,UAAU,IAAM;AAClB,YAAM,QAAQ,EAAE,IAAI,CAAC;AACrB,YAAM,WAAW,iBAAiB,GAAG,IAAI,CAAC;AAG1C,YAAM,aAAa,UAAU,OAAQ,UAAU;AAC/C,UAAI,CAAC,WAAY,KAAI,KAAK,EAAE,SAAS,GAAG,QAAQ,CAAC;AACjD,UAAI;AAAA,IACN,WAAW,UAAU,IAAM;AACzB,YAAM,cAAc,EAAE,IAAI,CAAC;AAC3B,UAAI,YAAY,IAAI;AACpB,UAAI,cAAc,IAAM,cAAa,KAAK,MAAO,cAAc,KAAQ;AACvE,mBAAa;AACb,YAAM,WAAW,iBAAiB,GAAG,SAAS;AAC9C,UAAI,KAAK,EAAE,SAAS,GAAG,QAAQ,CAAC;AAChC,UAAI;AAAA,IACN,OAAO;AACL,UAAI,KAAK,EAAE,SAAS,CAAC,CAAC;AACtB;AAAA,IACF;AAAA,EACF;AACA,SAAO,OAAO,GAAG;AACnB;AAEA,IAAM,uBAAuB,oBAAI,IAAI,CAAC,QAAQ,QAAQ,MAAM,CAAC;AAE7D,SAAS,kBAAkB,GAA2B;AACpD,MAAI,EAAE,SAAS,GAAI,QAAO;AAC1B,QAAM,SAAuB,CAAC;AAC9B,MAAI,IAAI;AACR,SAAO,IAAI,KAAK,EAAE,QAAQ;AACxB,UAAM,SAAS,MAAM,GAAG,GAAG,CAAC;AAC5B,UAAM,OAAO,MAAM,GAAG,IAAI,CAAC;AAC3B,UAAM,SAAS,QAAQ,OAAO;AAC9B,UAAM,MAAM,IAAI,IAAI;AACpB,QAAI,MAAM,EAAE,QAAQ;AAClB,aAAO,KAAK,EAAE,SAAS,CAAC,CAAC;AACzB;AAAA,IACF;AACA,QAAI,CAAC,qBAAqB,IAAI,MAAM,EAAG,QAAO,KAAK,EAAE,SAAS,GAAG,GAAG,CAAC;AACrE,QAAI;AAAA,EACN;AACA,QAAM,OAAO,OAAO,MAAM;AAG1B,QAAM,MAAM,IAAI,WAAW,KAAK,KAAK,MAAM;AAC3C,MAAI,IAAI,EAAE,SAAS,GAAG,EAAE,GAAG,CAAC;AAC5B,MAAI,IAAI,MAAM,EAAE;AAChB,MAAI,CAAC,IAAK,IAAI,KAAK,SAAU;AAC7B,MAAI,CAAC,IAAM,IAAI,KAAK,UAAW,IAAK;AACpC,MAAI,CAAC,IAAM,IAAI,KAAK,UAAW,KAAM;AACrC,MAAI,CAAC,IAAM,IAAI,KAAK,UAAW,KAAM;AACrC,MAAI,MAAM,KAAK,IAAI,CAAC,MAAM,QAAQ;AAEhC,QAAI,EAAE,IAAI,IAAI,EAAE,IAAK,CAAC;AAAA,EACxB;AACA,SAAO;AACT;AAQO,SAAS,mBAAmB,OAAmB,MAAqC;AACzF,UAAQ,MAAM;AAAA,IACZ,KAAK;AACH,aAAO,kBAAkB,KAAK;AAAA,IAChC,KAAK;AACH,aAAO,iBAAiB,KAAK;AAAA,IAC/B,KAAK;AACH,aAAO,iBAAiB,KAAK;AAAA,IAC/B,KAAK;AACH,aAAO,kBAAkB,KAAK;AAAA,EAClC;AACF;;;AC1SO,IAAM,iBAAiB;","names":["validate","validateTakuhon","out"]}
|