| 
						 | 
						- {{# def.definitions }}
 - {{# def.errors }}
 - {{# def.setupKeyword }}
 - 
 - {{## def._validateRef:_v:
 -   {{? it.opts.passContext }}
 -     {{=_v}}.call(this,
 -   {{??}}
 -     {{=_v}}(
 -   {{?}}
 -     {{=$data}}, {{# def.dataPath }}{{# def.passParentData }}, rootData)
 - #}}
 - 
 - {{ var $async, $refCode; }}
 - {{? $schema == '#' || $schema == '#/' }}
 -   {{
 -     if (it.isRoot) {
 -       $async = it.async;
 -       $refCode = 'validate';
 -     } else {
 -       $async = it.root.schema.$async === true;
 -       $refCode = 'root.refVal[0]';
 -     }
 -   }}
 - {{??}}
 -   {{ var $refVal = it.resolveRef(it.baseId, $schema, it.isRoot); }}
 -   {{? $refVal === undefined }}
 -     {{ var $message = it.MissingRefError.message(it.baseId, $schema); }}
 -     {{? it.opts.missingRefs == 'fail' }}
 -       {{ it.logger.error($message); }}
 -       {{# def.error:'$ref' }}
 -       {{? $breakOnError }} if (false) { {{?}}
 -     {{?? it.opts.missingRefs == 'ignore' }}
 -       {{ it.logger.warn($message); }}
 -       {{? $breakOnError }} if (true) { {{?}}
 -     {{??}}
 -       {{ throw new it.MissingRefError(it.baseId, $schema, $message); }}
 -     {{?}}
 -   {{?? $refVal.inline }}
 -     {{# def.setupNextLevel }}
 -     {{
 -       $it.schema = $refVal.schema;
 -       $it.schemaPath = '';
 -       $it.errSchemaPath = $schema;
 -     }}
 -     {{ var $code = it.validate($it).replace(/validate\.schema/g, $refVal.code); }}
 -     {{= $code }}
 -     {{? $breakOnError}}
 -       if ({{=$nextValid}}) {
 -     {{?}}
 -   {{??}}
 -     {{
 -       $async = $refVal.$async === true || (it.async && $refVal.$async !== false);
 -       $refCode = $refVal.code;
 -     }}
 -   {{?}}
 - {{?}}
 - 
 - {{? $refCode }}
 -   {{# def.beginDefOut}}
 -     {{# def._validateRef:$refCode }}
 -   {{# def.storeDefOut:__callValidate }}
 - 
 -   {{? $async }}
 -     {{ if (!it.async) throw new Error('async schema referenced by sync schema'); }}
 -     {{? $breakOnError }} var {{=$valid}}; {{?}}
 -     try {
 -       await {{=__callValidate}};
 -       {{? $breakOnError }} {{=$valid}} = true; {{?}}
 -     } catch (e) {
 -       if (!(e instanceof ValidationError)) throw e;
 -       if (vErrors === null) vErrors = e.errors;
 -       else vErrors = vErrors.concat(e.errors);
 -       errors = vErrors.length;
 -       {{? $breakOnError }} {{=$valid}} = false; {{?}}
 -     }
 -     {{? $breakOnError }} if ({{=$valid}}) { {{?}}
 -   {{??}}
 -     if (!{{=__callValidate}}) {
 -       if (vErrors === null) vErrors = {{=$refCode}}.errors;
 -       else vErrors = vErrors.concat({{=$refCode}}.errors);
 -       errors = vErrors.length;
 -     } {{? $breakOnError }} else { {{?}}
 -   {{?}}
 - {{?}}
 
 
  |