textlane 0.2.1 → 0.3.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/build/generated/html.d.ts +3 -2
- package/build/generated/html.js +1 -1
- package/build/generated/md.d.ts +12 -2
- package/build/generated/md.js +7 -1
- package/build/generated/nl.d.ts +3 -2
- package/build/generated/nl.js +1 -1
- package/build/index.d.ts +2 -2
- package/build/index.js +1 -1
- package/build/models/addon.d.ts +17 -8
- package/build/models/addon.js +1 -1
- package/build/models/plugin.d.ts +7 -0
- package/build/models/plugin.js +1 -1
- package/build/models/processor.d.ts +12 -8
- package/build/models/processor.js +21 -8
- package/package.json +13 -7
- package/skills/textlane-usage/SKILL.md +11 -3
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Root } from "hast";
|
|
2
|
+
import type { Parser, Plugin } from "../models/plugin.ts";
|
|
2
3
|
/** `html.parse`: HTML into hast; options named as rehype-parse names them. */
|
|
3
4
|
export interface ParseOptions {
|
|
4
5
|
/** Parse a fragment, as in a `template`, rather than a whole document. @default false */
|
|
@@ -233,7 +234,7 @@ export interface StringifyOptions {
|
|
|
233
234
|
voids?: string[] | null;
|
|
234
235
|
}
|
|
235
236
|
/** The `html.parse` plugin. */
|
|
236
|
-
export declare function parse(options?: ParseOptions): Plugin<"html.parse", ParseOptions>;
|
|
237
|
+
export declare function parse(options?: ParseOptions): Plugin<"html.parse", ParseOptions> & Parser<Root>;
|
|
237
238
|
/** The `html.raw` plugin. */
|
|
238
239
|
export declare function raw(options?: RawOptions): Plugin<"html.raw", RawOptions>;
|
|
239
240
|
/** The `html.format` plugin. */
|
package/build/generated/html.js
CHANGED
|
@@ -73,4 +73,4 @@ export function stringify(options) {
|
|
|
73
73
|
return { name: "html.stringify" };
|
|
74
74
|
return { name: "html.stringify", options };
|
|
75
75
|
}
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2dlbmVyYXRlZC9odG1sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtFQUErRTtBQXFPL0UsK0JBQStCO0FBQy9CLE1BQU0sVUFBVSxLQUFLLENBQUMsT0FBc0I7SUFDMUMsSUFBSSxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLENBQUE7SUFDeEQsT0FBTyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLENBQUE7QUFDeEMsQ0FBQztBQUVELDZCQUE2QjtBQUM3QixNQUFNLFVBQVUsR0FBRyxDQUFDLE9BQW9CO0lBQ3RDLElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFBO0lBQ3RELE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxDQUFBO0FBQ3RDLENBQUM7QUFFRCxnQ0FBZ0M7QUFDaEMsTUFBTSxVQUFVLE1BQU0sQ0FBQyxPQUF1QjtJQUM1QyxJQUFJLE9BQU8sS0FBSyxTQUFTO1FBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsQ0FBQTtJQUN6RCxPQUFPLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUN6QyxDQUFDO0FBRUQsa0NBQWtDO0FBQ2xDLE1BQU0sVUFBVSxRQUFRLENBQUMsT0FBeUI7SUFDaEQsSUFBSSxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLENBQUE7SUFDM0QsT0FBTyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLENBQUE7QUFDM0MsQ0FBQztBQUVELDhCQUE4QjtBQUM5QixNQUFNLFVBQVUsSUFBSSxDQUFDLE9BQXFCO0lBQ3hDLElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFBO0lBQ3ZELE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxDQUFBO0FBQ3ZDLENBQUM7QUFFRCx1Q0FBdUM7QUFDdkMsTUFBTSxVQUFVLGFBQWEsQ0FBQyxPQUE4QjtJQUMxRCxJQUFJLE9BQU8sS0FBSyxTQUFTO1FBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRSxDQUFBO0lBQ2hFLE9BQU8sRUFBRSxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsT0FBTyxFQUFFLENBQUE7QUFDaEQsQ0FBQztBQUVELHNDQUFzQztBQUN0QyxNQUFNLFVBQVUsWUFBWTtJQUMxQixPQUFPLEVBQUUsSUFBSSxFQUFFLG1CQUFtQixFQUFFLENBQUE7QUFDdEMsQ0FBQztBQUVELG9DQUFvQztBQUNwQyxNQUFNLFVBQVUsVUFBVSxDQUFDLE9BQTJCO0lBQ3BELElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLENBQUE7SUFDN0QsT0FBTyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUM3QyxDQUFDO0FBRUQsbUNBQW1DO0FBQ25DLE1BQU0sVUFBVSxTQUFTLENBQUMsT0FBMEI7SUFDbEQsSUFBSSxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQTtJQUM1RCxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxDQUFBO0FBQzVDLENBQUM7QUFFRCwrQkFBK0I7QUFDL0IsTUFBTSxVQUFVLEtBQUssQ0FBQyxPQUFzQjtJQUMxQyxJQUFJLE9BQU8sS0FBSyxTQUFTO1FBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsQ0FBQTtJQUN4RCxPQUFPLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUN4QyxDQUFDO0FBRUQsb0NBQW9DO0FBQ3BDLE1BQU0sVUFBVSxVQUFVLENBQUMsT0FBMkI7SUFDcEQsSUFBSSxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQTtJQUM3RCxPQUFPLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxDQUFBO0FBQzdDLENBQUM7QUFFRCwyQ0FBMkM7QUFDM0MsTUFBTSxVQUFVLGlCQUFpQjtJQUMvQixPQUFPLEVBQUUsSUFBSSxFQUFFLHdCQUF3QixFQUFFLENBQUE7QUFDM0MsQ0FBQztBQUVELG1DQUFtQztBQUNuQyxNQUFNLFVBQVUsU0FBUyxDQUFDLE9BQTBCO0lBQ2xELElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLENBQUE7SUFDNUQsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUM1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR2VuZXJhdGVkIGJ5IGBwbnBtIGdlbmVyYXRlOmJpbmRpbmdzYCBmcm9tIHRoZSBjcmF0ZSdzIHBsdWdpbnM7IGRvIG5vdCBlZGl0LlxuXG5pbXBvcnQgdHlwZSB7IFBsdWdpbiB9IGZyb20gXCIuLi9tb2RlbHMvcGx1Z2luLnRzXCJcblxuLyoqIGBodG1sLnBhcnNlYDogSFRNTCBpbnRvIGhhc3Q7IG9wdGlvbnMgbmFtZWQgYXMgcmVoeXBlLXBhcnNlIG5hbWVzIHRoZW0uICovXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlT3B0aW9ucyB7XG4gIC8qKiBQYXJzZSBhIGZyYWdtZW50LCBhcyBpbiBhIGB0ZW1wbGF0ZWAsIHJhdGhlciB0aGFuIGEgd2hvbGUgZG9jdW1lbnQuIEBkZWZhdWx0IGZhbHNlICovXG4gIGZyYWdtZW50PzogYm9vbGVhblxuICAvKiogUmVwb3J0IHBhcnNlIGVycm9ycyBhcyBtZXNzYWdlcyBvbiB0aGUgZmlsZS4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgZW1pdFBhcnNlRXJyb3JzPzogYm9vbGVhblxuICAvKiogQWRkIHRoZSBwb3NpdGlvbnMgb2Ygb3BlbmluZyBhbmQgY2xvc2luZyB0YWdzIGFuZCBhdHRyaWJ1dGVzIHRvIGVsZW1lbnRzLiBAZGVmYXVsdCBmYWxzZSAqL1xuICB2ZXJib3NlPzogYm9vbGVhblxufVxuXG4vKiogYGh0bWwucmF3YDogcmVwYXJzZSByYXcgSFRNTCBhbmQgZml4IG5lc3RpbmcgdGhyb3VnaCB0aGUgSFRNTCBwYXJzZXI7IG9wdGlvbnMgbmFtZWQgYXMgaGFzdC11dGlsLXJhdyBuYW1lcyB0aGVtLiAqL1xuZXhwb3J0IGludGVyZmFjZSBSYXdPcHRpb25zIHtcbiAgLyoqIE5vZGUgdHlwZXMsIHVua25vd24gdG8gaGFzdCwgdG8gY29weSB0aHJvdWdoIGFzIHRoZXkgYXJlOyB0aGVpciBjaGlsZHJlbiBhcmUgcmVwYXJzZWQgb24gdGhlaXIgb3duLiBAZGVmYXVsdCBbXSAqL1xuICBwYXNzVGhyb3VnaD86IHN0cmluZ1tdXG4gIC8qKiBFc2NhcGUgdGhlIG9wZW5pbmcgYDxgIG9mIHRoZSB0YWdzIEdGTSdzIHRhZ2ZpbHRlciBkaXNhbGxvd3MgaW4gcmF3IG5vZGVzLiBAZGVmYXVsdCBmYWxzZSAqL1xuICB0YWdmaWx0ZXI/OiBib29sZWFuXG59XG5cbi8qKiBgaHRtbC5mb3JtYXRgOiBpbmRlbnQgYW5kIGNvbGxhcHNlIHdoaXRlc3BhY2UgZm9yIHJlYWRhYmxlIEhUTUw7IG9wdGlvbnMgbmFtZWQgYXMgaGFzdC11dGlsLWZvcm1hdCBuYW1lcyB0aGVtLiAqL1xuZXhwb3J0IGludGVyZmFjZSBGb3JtYXRPcHRpb25zIHtcbiAgLyoqIFRhZyBuYW1lcyBvZiBlbGVtZW50cyB0byBwdXQgYSBibGFuayBsaW5lIGJldHdlZW4sIHdoZW4gYm90aCBhcmUgb25lLiBAZGVmYXVsdCBbXSAqL1xuICBibGFua3M/OiBzdHJpbmdbXVxuICAvKiogT25lIGxldmVsIG9mIGluZGVudGF0aW9uOiBhIG51bWJlciBvZiBzcGFjZXMgb3IgdGhlIHRleHQgaXRzZWxmOyB0d28gc3BhY2VzIHdoZW4gbGVmdCBvdXQuICovXG4gIGluZGVudD86IEluZGVudCB8IG51bGxcbiAgLyoqIEluZGVudCB0aGUgZmlyc3QgbGV2ZWwsIHVzdWFsbHkgYDxodG1sPmAncyBgaGVhZGAgYW5kIGBib2R5YDsgYHRydWVgIHdoZW4gbGVmdCBvdXQuICovXG4gIGluZGVudEluaXRpYWw/OiBib29sZWFuIHwgbnVsbFxufVxuXG4vKiogT25lIGxldmVsIG9mIGluZGVudGF0aW9uLiAqL1xuZXhwb3J0IHR5cGUgSW5kZW50ID0gbnVtYmVyIHwgc3RyaW5nXG5cbi8qKiBgaHRtbC5zYW5pdGl6ZWA6IGtlZXAgb25seSB3aGF0IGEgc2NoZW1hIGFsbG93czsgb3B0aW9uczogaGFzdC11dGlsLXNhbml0aXplJ3Mgc2NoZW1hLCB3aGVyZSBhIGZpZWxkIGxlZnQgb3V0IGtlZXBzIHRoZSBkZWZhdWx0IHNjaGVtYSdzLCB3aGljaCBpcyBHaXRIdWIncy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2FuaXRpemVPcHRpb25zIHtcbiAgLyoqIEtlZXAgY29tbWVudHMuICovXG4gIGFsbG93Q29tbWVudHM/OiBib29sZWFuIHwgbnVsbFxuICAvKiogS2VlcCBkb2N0eXBlcy4gKi9cbiAgYWxsb3dEb2N0eXBlcz86IGJvb2xlYW4gfCBudWxsXG4gIC8qKiBFbGVtZW50cyBhbGxvd2VkIG9ubHkgaW5zaWRlIG9uZSBvZiB0aGVzZSBhbmNlc3RvcnMsIGJ5IHRhZyBuYW1lLiAqL1xuICBhbmNlc3RvcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gfCBudWxsXG4gIC8qKiBQcm9wZXJ0aWVzIGFsbG93ZWQgcGVyIHRhZyBuYW1lLCBgKmAgZm9yIGV2ZXJ5IGVsZW1lbnQ7IGEgbGlzdCBuYW1lcyBhIHByb3BlcnR5IGFuZCB0aGUgdmFsdWVzIGl0IG1heSBoYXZlLiAqL1xuICBhdHRyaWJ1dGVzPzogUmVjb3JkPHN0cmluZywgQXR0cmlidXRlRGVmaW5pdGlvbltdPiB8IG51bGxcbiAgLyoqIFByb3BlcnRpZXMgd2hvc2UgdmFsdWVzIGdldCBgY2xvYmJlcl9wcmVmaXhgLCBzbyB0aGV5IGNhbm5vdCBjbG9iYmVyIGdsb2JhbHMuICovXG4gIGNsb2JiZXI/OiBzdHJpbmdbXSB8IG51bGxcbiAgLyoqIFRoZSBwcmVmaXggb2YgY2xvYmJlcmVkIHZhbHVlcy4gKi9cbiAgY2xvYmJlclByZWZpeD86IHN0cmluZyB8IG51bGxcbiAgLyoqIFVSTCBwcm9wZXJ0aWVzIGFuZCB0aGUgcHJvdG9jb2xzIHRoZXkgbWF5IHVzZS4gKi9cbiAgcHJvdG9jb2xzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+IHwgbnVsbFxuICAvKiogUHJvcGVydGllcyBzZXQgb24gZWxlbWVudHMgd2hhdGV2ZXIgdGhleSBoYWQsIGJ5IHRhZyBuYW1lLiAqL1xuICByZXF1aXJlZD86IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIFByaW1pdGl2ZT4+IHwgbnVsbFxuICAvKiogRWxlbWVudHMgZHJvcHBlZCB3aXRoIHRoZWlyIGNvbnRlbnQgcmF0aGVyIHRoYW4gdW53cmFwcGVkLiAqL1xuICBzdHJpcD86IHN0cmluZ1tdIHwgbnVsbFxuICAvKiogVGhlIGVsZW1lbnRzIGtlcHQuICovXG4gIHRhZ05hbWVzPzogc3RyaW5nW10gfCBudWxsXG59XG5cbi8qKiBBIHByb3BlcnR5IGEgc2FuaXRpemUgc2NoZW1hIGFsbG93czogYnkgbmFtZSwgb3IgYSBuYW1lIGFuZCBpdHMgYWxsb3dlZCB2YWx1ZXMuICovXG5leHBvcnQgdHlwZSBBdHRyaWJ1dGVEZWZpbml0aW9uID0gc3RyaW5nIHwgUHJpbWl0aXZlW11cblxuLyoqIEEgcHJpbWl0aXZlIHByb3BlcnR5IHZhbHVlLiAqL1xuZXhwb3J0IHR5cGUgUHJpbWl0aXZlID0gYm9vbGVhbiB8IG51bWJlciB8IHN0cmluZ1xuXG4vKiogYGh0bWwuc2x1Z2A6IGlkcyBvbiBoZWFkaW5ncywgZnJvbSB0aGVpciB0ZXh0OyBvcHRpb25zIG5hbWVkIGFzIHJlaHlwZS1zbHVnIG5hbWVzIHRoZW0uICovXG5leHBvcnQgaW50ZXJmYWNlIFNsdWdPcHRpb25zIHtcbiAgLyoqIFB1dCBiZWZvcmUgZWFjaCBpZC4gQGRlZmF1bHQgXCJcIiAqL1xuICBwcmVmaXg/OiBzdHJpbmdcbn1cblxuLyoqIGBodG1sLmV4dGVybmFsTGlua3NgOiBgcmVsYCwgYHRhcmdldGAgYW5kIG1vcmUgb24gbGlua3MgdG8gb3RoZXIgc2l0ZXMsIGFzIHJlaHlwZS1leHRlcm5hbC1saW5rcyBhZGRzIHRoZW07IG9wdGlvbnMgbmFtZWQgYXMgaXQgbmFtZXMgdGhlbSwgSlNPTiB2YWx1ZXMgb25seS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZXJuYWxMaW5rc09wdGlvbnMge1xuICAvKiogVGhlIGB0YXJnZXRgIG9mIGVhY2ggZXh0ZXJuYWwgbGluaywgc3VjaCBhcyBgX2JsYW5rYC4gKi9cbiAgdGFyZ2V0Pzogc3RyaW5nIHwgbnVsbFxuICAvKiogVGhlIGByZWxgIG9mIGVhY2ggZXh0ZXJuYWwgbGluazogYSBsaXN0LCBvciB0b2tlbnMgc2VwYXJhdGVkIGJ5IHdoaXRlIHNwYWNlOyBgbm9mb2xsb3dgIHdoZW4gbGVmdCBvdXQgb3IgZW1wdHksIG5vbmUgZm9yIGFuIGVtcHR5IGxpc3QuICovXG4gIHJlbD86IFRva2VucyB8IG51bGxcbiAgLyoqIFRoZSBwcm90b2NvbHMgb2YgYWJzb2x1dGUgVVJMcyB0aGF0IGNvdW50IGFzIGV4dGVybmFsOyBgaHR0cGAgYW5kIGBodHRwc2Agd2hlbiBsZWZ0IG91dC4gQSBwcm90b2NvbC1yZWxhdGl2ZSBgLy/igKZgIFVSTCBhbHdheXMgY291bnRzLiAqL1xuICBwcm90b2NvbHM/OiBzdHJpbmdbXSB8IG51bGxcbiAgLyoqIE1vcmUgcHJvcGVydGllcyBmb3IgZWFjaCBleHRlcm5hbCBsaW5rLCBhcyBoYXN0IG5hbWVzIHRoZW0uICovXG4gIHByb3BlcnRpZXM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGxcbiAgLyoqIGhhc3QgY29udGVudCBhcHBlbmRlZCB0byBlYWNoIGV4dGVybmFsIGxpbmsgaW4gYSBgPHNwYW4+YDogb25lIG5vZGUgb3IgYSBsaXN0LiAqL1xuICBjb250ZW50PzogdW5rbm93blxuICAvKiogVGhlIHByb3BlcnRpZXMgb2YgdGhhdCBgPHNwYW4+YC4gKi9cbiAgY29udGVudFByb3BlcnRpZXM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGxcbn1cblxuLyoqIFRva2VuczogYSBsaXN0LCBvciBvbmUgc3RyaW5nIG9mIHRoZW0gc2VwYXJhdGVkIGJ5IHdoaXRlIHNwYWNlLiAqL1xuZXhwb3J0IHR5cGUgVG9rZW5zID0gc3RyaW5nIHwgc3RyaW5nW11cblxuLyoqIGBodG1sLmV4dHJhY3RUb2NgOiB0aGUgaGVhZGluZ3MsIG5lc3RlZCBieSByYW5rLCBhcyB0aGUgZmlsZSdzIGBkYXRhLnRvY2AsIGFzIEBzdGVmYW5wcm9ic3QvcmVoeXBlLWV4dHJhY3QtdG9jIHN0b3JlcyB0aGVtLiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeHRyYWN0VG9jT3B0aW9ucyB7XG4gIC8qKiBBdHRyaWJ1dGVzLCBzdWNoIGFzIGBkYXRhLXRvYy1oaWRkZW5gLCB0aGF0IGtlZXAgYSBoZWFkaW5nIG91dCBvZiB0aGUgdGFibGUgb2YgY29udGVudHM7IHdoYXQgd291bGQgbmVzdCB1bmRlciBpdCBuZXN0cyB1bmRlciB0aGUgaGVhZGluZyBiZWZvcmUuIEBkZWZhdWx0IFtdICovXG4gIHNraXA/OiBzdHJpbmdbXVxufVxuXG4vKiogYGh0bWwuaGlnaGxpZ2h0YDogY29kZSBibG9ja3MgY29sb3JlZCBhcyBTaGlraSBjb2xvcnMgdGhlbSwgbmF0aXZlbHkgYnkgZ2lhbGxvOyBvcHRpb25zIG5hbWVkIGFzIEBzaGlraWpzL3JlaHlwZSBuYW1lcyB0aGVtLiAqL1xuZXhwb3J0IGludGVyZmFjZSBIaWdobGlnaHRPcHRpb25zIHtcbiAgLyoqIFRoZSB0aGVtZSBvZiBlYWNoIGNvbG9yIG1vZGUsIGBsaWdodGAgZmlyc3QsIGFzIGB7XCJsaWdodFwiOiDigKYsIFwiZGFya1wiOiDigKZ9YC4gKi9cbiAgdGhlbWVzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBudWxsXG4gIC8qKiBUaGUgb25lIHRoZW1lLCB3aGVuIGB0aGVtZXNgIGlzIG5vdCBnaXZlbi4gKi9cbiAgdGhlbWU/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBUaGUgbGFuZ3VhZ2Ugb2YgYSBibG9jayB0aGF0IG5hbWVzIG5vbmU7IHN1Y2ggYSBibG9jayBpcyBsZWZ0IGFsb25lIHdpdGhvdXQgaXQuICovXG4gIGRlZmF1bHRMYW5ndWFnZT86IHN0cmluZyB8IG51bGxcbiAgLyoqIFRoZSBsYW5ndWFnZSBvZiBhIGJsb2NrIG5hbWluZyBvbmUgU2hpa2kgZG9lcyBub3Qga25vdzsgbGVmdCBhbG9uZSB3aXRob3V0IGl0LiAqL1xuICBmYWxsYmFja0xhbmd1YWdlPzogc3RyaW5nIHwgbnVsbFxuICAvKiogQ29sb3JzIHRvIHJlcGxhY2UsIGJ5IHRoZWlyIGxvd2VyY2FzZSBzcGVsbGluZzogYSBjb2xvciBmb3IgZXZlcnkgdGhlbWUsIG9yIGEgdGhlbWUncyBuYW1lIHRvIGEgbWFwIG9mIGl0cyBvd24uICovXG4gIGNvbG9yUmVwbGFjZW1lbnRzPzogUmVjb3JkPHN0cmluZywgQ29sb3JSZXBsYWNlbWVudD5cbiAgLyoqIEFkZCBgbGFuZ3VhZ2UtPG5hbWU+YCB0byBlYWNoIGhpZ2hsaWdodGVkIGA8Y29kZT5gLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBhZGRMYW5ndWFnZUNsYXNzPzogYm9vbGVhblxuICAvKiogSGlnaGxpZ2h0IGlubGluZSBjb2RlIHRvbywgYnkgaG93IGl0IG5hbWVzIGl0cyBsYW5ndWFnZTogYHRhaWxpbmctY3VybHktY29sb25gIHJlYWRzIGBgIGBhKCl7OmpzfWAgYGAuICovXG4gIGlubGluZT86IElubGluZUNvZGUgfCBudWxsXG4gIC8qKiBUaGUgYDxwcmU+YCBwcm9wZXJ0eSB0aGF0IGdldHMgYSBibG9jaydzIG1ldGEsIHRoZSB0ZXh0IGFmdGVyIGl0cyBsYW5ndWFnZTsgdGhlIEpTT04gc3RhbmQtaW4gZm9yIGBwYXJzZU1ldGFTdHJpbmc6IG1ldGEgPT4gKHsgW25hbWVdOiBtZXRhIH0pYC4gKi9cbiAgbWV0YVByb3BlcnR5Pzogc3RyaW5nIHwgbnVsbFxuICAvKiogVGhlIHRyYW5zZm9ybWVycyBvZiBAc2hpa2lqcy90cmFuc2Zvcm1lcnMgdG8gcnVuLCBpbiBvcmRlciwgYnkgbmFtZSBvciB3aXRoIG9wdGlvbnMuICovXG4gIHRyYW5zZm9ybWVycz86IEhpZ2hsaWdodFRyYW5zZm9ybWVyW11cbiAgLyoqIExpbmVzIGF0IGxlYXN0IHRoaXMgbG9uZywgaW4gVVRGLTE2IHVuaXRzLCBhcmUgbGVmdCBvbmUgcGxhaW4gdG9rZW4gYXMgU2hpa2kncyBvd24gb3B0aW9uIGxlYXZlcyB0aGVtOyAyLDAwMCB3aGVuIGxlZnQgb3V0LCB3aGVyZSBTaGlraSBoYXMgbm8gbGltaXQsIHNpbmNlIGEgZ3JhbW1hcidzIHRpbWUgZ3Jvd3Mgd2l0aCB0aGUgc3F1YXJlIG9mIGEgbGluZSdzIGxlbmd0aC4gYDBgIGxpZnRzIGl0LiAqL1xuICB0b2tlbml6ZU1heExpbmVMZW5ndGg/OiBudW1iZXIgfCBudWxsXG59XG5cbi8qKiBBIHJlcGxhY2VtZW50IGNvbG9yLCBvciBhIHRoZW1lJ3Mgb3duIHJlcGxhY2VtZW50cy4gKi9cbmV4cG9ydCB0eXBlIENvbG9yUmVwbGFjZW1lbnQgPSBzdHJpbmcgfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG5cbi8qKiBIb3cgaW5saW5lIGNvZGUgbmFtZXMgaXRzIGxhbmd1YWdlLiAqL1xuZXhwb3J0IHR5cGUgSW5saW5lQ29kZSA9IFwidGFpbGluZy1jdXJseS1jb2xvblwiXG5cbi8qKiBBIHRyYW5zZm9ybWVyIG9mIEBzaGlraWpzL3RyYW5zZm9ybWVyczogaXRzIG5hbWUgYWxvbmUsIG9yIGl0cyBuYW1lIGFuZCBvcHRpb25zLiAqL1xuZXhwb3J0IHR5cGUgSGlnaGxpZ2h0VHJhbnNmb3JtZXIgPSBUcmFuc2Zvcm1lck5hbWUgfCBDb25maWd1cmVkVHJhbnNmb3JtZXJcblxuLyoqIFRoZSB0cmFuc2Zvcm1lcnMgYGh0bWwuaGlnaGxpZ2h0YCBydW5zIG5hdGl2ZWx5LiAqL1xuZXhwb3J0IHR5cGUgVHJhbnNmb3JtZXJOYW1lID0gXCJub3RhdGlvbkRpZmZcIiB8IFwibm90YXRpb25Gb2N1c1wiIHwgXCJub3RhdGlvbkhpZ2hsaWdodFwiIHwgXCJub3RhdGlvbkVycm9yTGV2ZWxcIiB8IFwibWV0YUhpZ2hsaWdodFwiIHwgXCJtZXRhV29yZEhpZ2hsaWdodFwiIHwgXCJyZW5kZXJMaW5lTnVtYmVyXCJcblxuLyoqIEEgdHJhbnNmb3JtZXIgd2l0aCBpdHMgb3B0aW9ucywgYXMgQHNoaWtpanMvdHJhbnNmb3JtZXJzIG5hbWVzIHRoZW0uICovXG5leHBvcnQgdHlwZSBDb25maWd1cmVkVHJhbnNmb3JtZXIgPSB7IG5hbWU6IFwibm90YXRpb25EaWZmXCI7IGNsYXNzTGluZUFkZD86IENsYXNzZXMgfCBudWxsOyBjbGFzc0xpbmVSZW1vdmU/OiBDbGFzc2VzIHwgbnVsbDsgY2xhc3NBY3RpdmVQcmU/OiBDbGFzc2VzIHwgbnVsbDsgY2xhc3NBY3RpdmVDb2RlPzogQ2xhc3NlcyB8IG51bGwgfSB8IHsgbmFtZTogXCJub3RhdGlvbkZvY3VzXCI7IGNsYXNzQWN0aXZlTGluZT86IENsYXNzZXMgfCBudWxsOyBjbGFzc0FjdGl2ZVByZT86IENsYXNzZXMgfCBudWxsOyBjbGFzc0FjdGl2ZUNvZGU/OiBDbGFzc2VzIHwgbnVsbCB9IHwgeyBuYW1lOiBcIm5vdGF0aW9uSGlnaGxpZ2h0XCI7IGNsYXNzQWN0aXZlTGluZT86IENsYXNzZXMgfCBudWxsOyBjbGFzc0FjdGl2ZVByZT86IENsYXNzZXMgfCBudWxsOyBjbGFzc0FjdGl2ZUNvZGU/OiBDbGFzc2VzIHwgbnVsbCB9IHwgeyBuYW1lOiBcIm5vdGF0aW9uRXJyb3JMZXZlbFwiOyBjbGFzc01hcD86IFJlY29yZDxzdHJpbmcsIENsYXNzZXM+IHwgbnVsbDsgY2xhc3NBY3RpdmVQcmU/OiBDbGFzc2VzIHwgbnVsbDsgY2xhc3NBY3RpdmVDb2RlPzogQ2xhc3NlcyB8IG51bGwgfSB8IHsgbmFtZTogXCJtZXRhSGlnaGxpZ2h0XCI7IGNsYXNzTmFtZT86IENsYXNzZXMgfCBudWxsOyB6ZXJvSW5kZXhlZD86IGJvb2xlYW4gfSB8IHsgbmFtZTogXCJtZXRhV29yZEhpZ2hsaWdodFwiOyBjbGFzc05hbWU/OiBDbGFzc2VzIHwgbnVsbCB9IHwgeyBuYW1lOiBcInJlbmRlckxpbmVOdW1iZXJcIjsgY2xhc3NMaW5lTnVtYmVyPzogQ2xhc3NlcyB8IG51bGw7IHN0YXJ0PzogbnVtYmVyIHwgbnVsbCB9XG5cbi8qKiBDbGFzcyBuYW1lczogYSBsaXN0LCBvciBvbmUgc3RyaW5nIG9mIHRoZW0gc2VwYXJhdGVkIGJ5IHdoaXRlIHNwYWNlLiAqL1xuZXhwb3J0IHR5cGUgQ2xhc3NlcyA9IHN0cmluZyB8IHN0cmluZ1tdXG5cbi8qKiBgaHRtbC5rYXRleGA6IG1hdGggcmVuZGVyZWQgYXMgcmVoeXBlLWthdGV4IHJlbmRlcnMgaXQsIG5hdGl2ZWx5IGJ5IGthdGV4LXJzOyBvcHRpb25zIG5hbWVkIGFzIEthVGVYIG5hbWVzIHRoZW0uICovXG5leHBvcnQgaW50ZXJmYWNlIEthdGV4T3B0aW9ucyB7XG4gIC8qKiBUaGUgbWFya3VwIHRvIHdyaXRlLCBib3RoIEhUTUwgYW5kIE1hdGhNTCBieSBkZWZhdWx0LiAqL1xuICBvdXRwdXQ/OiBLYXRleE91dHB1dCB8IG51bGxcbiAgLyoqIFB1dCBlcXVhdGlvbiBudW1iZXJzIG9uIHRoZSBsZWZ0LiBAZGVmYXVsdCBmYWxzZSAqL1xuICBsZXFubz86IGJvb2xlYW5cbiAgLyoqIEFsaWduIGRpc3BsYXkgbWF0aCB0byB0aGUgbGVmdCBpbnN0ZWFkIG9mIGNlbnRlcmluZyBpdC4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgZmxlcW4/OiBib29sZWFuXG4gIC8qKiBUaGUgY29sb3Igb2YgbWF0aCB0aGF0IGZhaWxzIHRvIHJlbmRlciwgYCNjYzAwMDBgIGJ5IGRlZmF1bHQuICovXG4gIGVycm9yQ29sb3I/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBNYWNyb3MgYnkgbmFtZSwgZWFjaCB0byB0aGUgVGVYIGl0IGV4cGFuZHMgdG8sIGFzIGB7XCJcXFxcUlJcIjogXCJcXFxcbWF0aGJie1J9XCJ9YC4gQGRlZmF1bHQge30gKi9cbiAgbWFjcm9zPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPlxuICAvKiogVGhlIHRoaW5uZXN0IGEgcnVsZSwgc3VjaCBhcyBhIGZyYWN0aW9uIGxpbmUsIGlzIGRyYXduLCBpbiBlbXMuICovXG4gIG1pblJ1bGVUaGlja25lc3M/OiBudW1iZXIgfCBudWxsXG4gIC8qKiBMZXQgYFxcY29sb3JgIGNvbG9yIHRoZSB0ZXh0IGFmdGVyIGl0LCBhcyBMYVRlWCBkb2VzLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBjb2xvcklzVGV4dENvbG9yPzogYm9vbGVhblxuICAvKiogV2hhdCB0byBkbyB3aXRoIGlucHV0IExhVGVYIHdvdWxkIHJlamVjdDogYHRydWVgIG9yIGBcImVycm9yXCJgIGZhaWxzIGl0LCBgXCJ3YXJuXCJgIHByaW50cyBhIHdhcm5pbmcsIGBmYWxzZWAgb3IgYFwiaWdub3JlXCJgICh0aGUgZGVmYXVsdCkgYWNjZXB0cyBpdC4gKi9cbiAgc3RyaWN0PzogS2F0ZXhTdHJpY3QgfCBudWxsXG4gIC8qKiBBbGxvdyBjb21tYW5kcyB0aGF0IGNhbiBydW4gdW50cnVzdGVkIGlucHV0LCBzdWNoIGFzIGBcXGhyZWZgIGFuZCBgXFxpbmNsdWRlZ3JhcGhpY3NgLiBAZGVmYXVsdCBmYWxzZSAqL1xuICB0cnVzdD86IGJvb2xlYW5cbiAgLyoqIFRoZSBsYXJnZXN0IGEgdXNlci1naXZlbiBzaXplIG1heSBiZSwgaW4gZW1zLiAqL1xuICBtYXhTaXplPzogbnVtYmVyIHwgbnVsbFxuICAvKiogSG93IG1hbnkgbWFjcm8gZXhwYW5zaW9ucyBvbmUgZm9ybXVsYSBtYXkgdGFrZSwgMTAwMCBieSBkZWZhdWx0LiAqL1xuICBtYXhFeHBhbmQ/OiBudW1iZXIgfCBudWxsXG4gIC8qKiBMZXQgZGVmaW5pdGlvbnMgc3VjaCBhcyBgXFxkZWZgIGxhc3QgcGFzdCB0aGUgZm9ybXVsYSB0aGV5IGFyZSBpbi4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgZ2xvYmFsR3JvdXA/OiBib29sZWFuXG59XG5cbi8qKiBUaGUgbWFya3VwIEthVGVYIHdyaXRlcy4gKi9cbmV4cG9ydCB0eXBlIEthdGV4T3V0cHV0ID0gXCJodG1sXCIgfCBcIm1hdGhtbFwiIHwgXCJodG1sQW5kTWF0aG1sXCJcblxuLyoqIEhvdyBzdHJpY3RseSBLYVRlWCBob2xkcyBpbnB1dCB0byBMYVRlWC4gKi9cbmV4cG9ydCB0eXBlIEthdGV4U3RyaWN0ID0gYm9vbGVhbiB8IEthdGV4U3RyaWN0TW9kZVxuXG4vKiogT25lIGxldmVsIG9mIEthVGVYJ3Mgc3RyaWN0bmVzcy4gKi9cbmV4cG9ydCB0eXBlIEthdGV4U3RyaWN0TW9kZSA9IFwiaWdub3JlXCIgfCBcIndhcm5cIiB8IFwiZXJyb3JcIlxuXG4vKiogYGh0bWwudG9NYXJrZG93bmA6IGhhc3QgaW50byBtZGFzdDsgb3B0aW9ucyBuYW1lZCBhcyBoYXN0LXV0aWwtdG8tbWRhc3QgbmFtZXMgdGhlbS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVG9NYXJrZG93bk9wdGlvbnMge1xuICAvKiogV3JhcCBhbGwgcGhyYXNpbmcgY29udGVudCBvZiB0aGUgcm9vdCBpbiBwYXJhZ3JhcGhzLCBhcyBmb3IgYSB3aG9sZSBkb2N1bWVudC4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgZG9jdW1lbnQ/OiBib29sZWFuXG4gIC8qKiBDb2xsYXBzZSB3aGl0ZXNwYWNlIGhvbGRpbmcgYSBsaW5lIGVuZGluZyB0byB0aGF0IGxpbmUgZW5kaW5nIGluc3RlYWQgb2YgYSBzcGFjZS4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgbmV3bGluZXM/OiBib29sZWFuXG4gIC8qKiBUaGUgdGV4dCBvZiBhIGNoZWNrZWQgY2hlY2tib3ggb3IgcmFkaW8sIGBbeF1gIGJ5IGRlZmF1bHQuICovXG4gIGNoZWNrZWQ/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBUaGUgdGV4dCBvZiBhbiB1bmNoZWNrZWQgY2hlY2tib3ggb3IgcmFkaW8sIGBbIF1gIGJ5IGRlZmF1bHQuICovXG4gIHVuY2hlY2tlZD86IHN0cmluZyB8IG51bGxcbiAgLyoqIFRoZSBxdW90ZXMgYDxxPmAgdXNlcywgYW4gb3BlbmluZyBhbmQgY2xvc2luZyBjaGFyYWN0ZXIgZWFjaCwgYWx0ZXJuYXRpbmcgYnkgaG93IGRlZXAgaXQgbmVzdHM7IGBcImAgYnkgZGVmYXVsdC4gKi9cbiAgcXVvdGVzPzogc3RyaW5nW10gfCBudWxsXG59XG5cbi8qKiBgaHRtbC5zdHJpbmdpZnlgOiBoYXN0IGludG8gSFRNTDsgb3B0aW9ucyBuYW1lZCBhcyBoYXN0LXV0aWwtdG8taHRtbCBuYW1lcyB0aGVtLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdHJpbmdpZnlPcHRpb25zIHtcbiAgLyoqIFdyaXRlIHJhdyBub2RlcyBhcyB0aGV5IGFyZSBpbnN0ZWFkIG9mIGVzY2FwaW5nIHRoZW0uIEBkZWZhdWx0IGZhbHNlICovXG4gIGFsbG93RGFuZ2Vyb3VzSHRtbD86IGJvb2xlYW5cbiAgLyoqIExlYXZlIGNoYXJhY3RlcnMgdGhhdCBhcmUgb25seSBkYW5nZXJvdXMgaW4gc29tZSBjb250ZXh0cywgc3VjaCBhcyBgYCBgIGBgLCBhcyB0aGV5IGFyZS4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzPzogYm9vbGVhblxuICAvKiogTGVhdmUgY2hhcmFjdGVycyBhcyB0aGV5IGFyZSB3aGVyZSBicm93c2VycyBhY2NlcHQgdGhlbSB0aG91Z2ggdGhlIHNwZWMgZG9lcyBub3QuIEBkZWZhdWx0IGZhbHNlICovXG4gIGFsbG93UGFyc2VFcnJvcnM/OiBib29sZWFuXG4gIC8qKiBXcml0ZSBjb21tZW50cyBhcyBib2d1cyBjb21tZW50cywgYDw/YT5gLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBib2d1c0NvbW1lbnRzPzogYm9vbGVhblxuICAvKiogQ2xvc2UgZW1wdHkgZm9yZWlnbiBlbGVtZW50cywgYDxhIC8+YC4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgY2xvc2VFbXB0eUVsZW1lbnRzPzogYm9vbGVhblxuICAvKiogQ2xvc2Ugdm9pZCBlbGVtZW50cywgYDxiciAvPmAuIEBkZWZhdWx0IGZhbHNlICovXG4gIGNsb3NlU2VsZkNsb3Npbmc/OiBib29sZWFuXG4gIC8qKiBXcml0ZSBlbXB0eSBhdHRyaWJ1dGVzIGFzIGJhcmUgbmFtZXMsIGBhYCByYXRoZXIgdGhhbiBgYT1cIlwiYC4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgY29sbGFwc2VFbXB0eUF0dHJpYnV0ZXM/OiBib29sZWFuXG4gIC8qKiBMZWF2ZSBvdXQgdGFncyB0aGUgSFRNTCBzcGVjIGxldHMgYSBwYXJzZXIgaW1wbHkuIEBkZWZhdWx0IGZhbHNlICovXG4gIG9taXRPcHRpb25hbFRhZ3M/OiBib29sZWFuXG4gIC8qKiBMZWF2ZSBhdHRyaWJ1dGUgdmFsdWVzIHVucXVvdGVkIHdoZXJlIHRoYXQgaXMgc2FmZS4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgcHJlZmVyVW5xdW90ZWQ/OiBib29sZWFuXG4gIC8qKiBUaGUgcXVvdGUgYXR0cmlidXRlIHZhbHVlcyBhcmUgd3JhcHBlZCBpbjogYFwiYCBvciBgJ2AuICovXG4gIHF1b3RlPzogc3RyaW5nIHwgbnVsbFxuICAvKiogVXNlIHRoZSBvdGhlciBxdW90ZSB3aGVuIHRoZSB2YWx1ZSBob2xkcyBtb3JlIG9mIHRoZSBwcmVmZXJyZWQgb25lLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBxdW90ZVNtYXJ0PzogYm9vbGVhblxuICAvKiogVGhlIHNwYWNlIHRoZSB0cmVlIGlzIGluOiBgaHRtbGAgb3IgYHN2Z2AuICovXG4gIHNwYWNlPzogc3RyaW5nIHwgbnVsbFxuICAvKiogTGVhdmUgb3V0IHRoZSBzcGFjZSBiZXR3ZWVuIHF1b3RlZCBhdHRyaWJ1dGVzLiBAZGVmYXVsdCBmYWxzZSAqL1xuICB0aWdodEF0dHJpYnV0ZXM/OiBib29sZWFuXG4gIC8qKiBKb2luIGNvbW1hLXNlcGFyYXRlZCB2YWx1ZXMgd2l0aCBgLGAgcmF0aGVyIHRoYW4gYCwgYC4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgdGlnaHRDb21tYVNlcGFyYXRlZExpc3RzPzogYm9vbGVhblxuICAvKiogV3JpdGUgYDwhZG9jdHlwZWh0bWw+YC4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgdGlnaHREb2N0eXBlPzogYm9vbGVhblxuICAvKiogTGVhdmUgb3V0IHRoZSBzcGFjZSBiZWZvcmUgYC8+YCB3aGVuIHRoZSBhdHRyaWJ1dGVzIGFsbG93LiBAZGVmYXVsdCBmYWxzZSAqL1xuICB0aWdodFNlbGZDbG9zaW5nPzogYm9vbGVhblxuICAvKiogV3JpdGUgYDwhRE9DVFlQRSBodG1sPmAuIEBkZWZhdWx0IGZhbHNlICovXG4gIHVwcGVyRG9jdHlwZT86IGJvb2xlYW5cbiAgLyoqIFRoZSB0YWcgbmFtZXMgb2Ygdm9pZCBlbGVtZW50cywgd2hpY2ggaGF2ZSBubyBjbG9zaW5nIHRhZy4gKi9cbiAgdm9pZHM/OiBzdHJpbmdbXSB8IG51bGxcbn1cblxuLyoqIFRoZSBgaHRtbC5wYXJzZWAgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlKG9wdGlvbnM/OiBQYXJzZU9wdGlvbnMpOiBQbHVnaW48XCJodG1sLnBhcnNlXCIsIFBhcnNlT3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcImh0bWwucGFyc2VcIiB9XG4gIHJldHVybiB7IG5hbWU6IFwiaHRtbC5wYXJzZVwiLCBvcHRpb25zIH1cbn1cblxuLyoqIFRoZSBgaHRtbC5yYXdgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiByYXcob3B0aW9ucz86IFJhd09wdGlvbnMpOiBQbHVnaW48XCJodG1sLnJhd1wiLCBSYXdPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwiaHRtbC5yYXdcIiB9XG4gIHJldHVybiB7IG5hbWU6IFwiaHRtbC5yYXdcIiwgb3B0aW9ucyB9XG59XG5cbi8qKiBUaGUgYGh0bWwuZm9ybWF0YCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0KG9wdGlvbnM/OiBGb3JtYXRPcHRpb25zKTogUGx1Z2luPFwiaHRtbC5mb3JtYXRcIiwgRm9ybWF0T3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcImh0bWwuZm9ybWF0XCIgfVxuICByZXR1cm4geyBuYW1lOiBcImh0bWwuZm9ybWF0XCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBodG1sLnNhbml0aXplYCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gc2FuaXRpemUob3B0aW9ucz86IFNhbml0aXplT3B0aW9ucyk6IFBsdWdpbjxcImh0bWwuc2FuaXRpemVcIiwgU2FuaXRpemVPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwiaHRtbC5zYW5pdGl6ZVwiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJodG1sLnNhbml0aXplXCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBodG1sLnNsdWdgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzbHVnKG9wdGlvbnM/OiBTbHVnT3B0aW9ucyk6IFBsdWdpbjxcImh0bWwuc2x1Z1wiLCBTbHVnT3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcImh0bWwuc2x1Z1wiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJodG1sLnNsdWdcIiwgb3B0aW9ucyB9XG59XG5cbi8qKiBUaGUgYGh0bWwuZXh0ZXJuYWxMaW5rc2AgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dGVybmFsTGlua3Mob3B0aW9ucz86IEV4dGVybmFsTGlua3NPcHRpb25zKTogUGx1Z2luPFwiaHRtbC5leHRlcm5hbExpbmtzXCIsIEV4dGVybmFsTGlua3NPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwiaHRtbC5leHRlcm5hbExpbmtzXCIgfVxuICByZXR1cm4geyBuYW1lOiBcImh0bWwuZXh0ZXJuYWxMaW5rc1wiLCBvcHRpb25zIH1cbn1cblxuLyoqIFRoZSBgaHRtbC51bndyYXBJbWFnZXNgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1bndyYXBJbWFnZXMoKTogUGx1Z2luPFwiaHRtbC51bndyYXBJbWFnZXNcIj4ge1xuICByZXR1cm4geyBuYW1lOiBcImh0bWwudW53cmFwSW1hZ2VzXCIgfVxufVxuXG4vKiogVGhlIGBodG1sLmV4dHJhY3RUb2NgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0VG9jKG9wdGlvbnM/OiBFeHRyYWN0VG9jT3B0aW9ucyk6IFBsdWdpbjxcImh0bWwuZXh0cmFjdFRvY1wiLCBFeHRyYWN0VG9jT3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcImh0bWwuZXh0cmFjdFRvY1wiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJodG1sLmV4dHJhY3RUb2NcIiwgb3B0aW9ucyB9XG59XG5cbi8qKiBUaGUgYGh0bWwuaGlnaGxpZ2h0YCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gaGlnaGxpZ2h0KG9wdGlvbnM/OiBIaWdobGlnaHRPcHRpb25zKTogUGx1Z2luPFwiaHRtbC5oaWdobGlnaHRcIiwgSGlnaGxpZ2h0T3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcImh0bWwuaGlnaGxpZ2h0XCIgfVxuICByZXR1cm4geyBuYW1lOiBcImh0bWwuaGlnaGxpZ2h0XCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBodG1sLmthdGV4YCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24ga2F0ZXgob3B0aW9ucz86IEthdGV4T3B0aW9ucyk6IFBsdWdpbjxcImh0bWwua2F0ZXhcIiwgS2F0ZXhPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwiaHRtbC5rYXRleFwiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJodG1sLmthdGV4XCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBodG1sLnRvTWFya2Rvd25gIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b01hcmtkb3duKG9wdGlvbnM/OiBUb01hcmtkb3duT3B0aW9ucyk6IFBsdWdpbjxcImh0bWwudG9NYXJrZG93blwiLCBUb01hcmtkb3duT3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcImh0bWwudG9NYXJrZG93blwiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJodG1sLnRvTWFya2Rvd25cIiwgb3B0aW9ucyB9XG59XG5cbi8qKiBUaGUgYGh0bWwudG9OYXR1cmFsTGFuZ3VhZ2VgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b05hdHVyYWxMYW5ndWFnZSgpOiBQbHVnaW48XCJodG1sLnRvTmF0dXJhbExhbmd1YWdlXCI+IHtcbiAgcmV0dXJuIHsgbmFtZTogXCJodG1sLnRvTmF0dXJhbExhbmd1YWdlXCIgfVxufVxuXG4vKiogVGhlIGBodG1sLnN0cmluZ2lmeWAgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeShvcHRpb25zPzogU3RyaW5naWZ5T3B0aW9ucyk6IFBsdWdpbjxcImh0bWwuc3RyaW5naWZ5XCIsIFN0cmluZ2lmeU9wdGlvbnM+IHtcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgbmFtZTogXCJodG1sLnN0cmluZ2lmeVwiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJodG1sLnN0cmluZ2lmeVwiLCBvcHRpb25zIH1cbn1cbiJdfQ==
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2dlbmVyYXRlZC9odG1sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtFQUErRTtBQXNPL0UsK0JBQStCO0FBQy9CLE1BQU0sVUFBVSxLQUFLLENBQUMsT0FBc0I7SUFDMUMsSUFBSSxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLENBQUE7SUFDeEQsT0FBTyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLENBQUE7QUFDeEMsQ0FBQztBQUVELDZCQUE2QjtBQUM3QixNQUFNLFVBQVUsR0FBRyxDQUFDLE9BQW9CO0lBQ3RDLElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFBO0lBQ3RELE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxDQUFBO0FBQ3RDLENBQUM7QUFFRCxnQ0FBZ0M7QUFDaEMsTUFBTSxVQUFVLE1BQU0sQ0FBQyxPQUF1QjtJQUM1QyxJQUFJLE9BQU8sS0FBSyxTQUFTO1FBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsQ0FBQTtJQUN6RCxPQUFPLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUN6QyxDQUFDO0FBRUQsa0NBQWtDO0FBQ2xDLE1BQU0sVUFBVSxRQUFRLENBQUMsT0FBeUI7SUFDaEQsSUFBSSxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLENBQUE7SUFDM0QsT0FBTyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLENBQUE7QUFDM0MsQ0FBQztBQUVELDhCQUE4QjtBQUM5QixNQUFNLFVBQVUsSUFBSSxDQUFDLE9BQXFCO0lBQ3hDLElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFBO0lBQ3ZELE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxDQUFBO0FBQ3ZDLENBQUM7QUFFRCx1Q0FBdUM7QUFDdkMsTUFBTSxVQUFVLGFBQWEsQ0FBQyxPQUE4QjtJQUMxRCxJQUFJLE9BQU8sS0FBSyxTQUFTO1FBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRSxDQUFBO0lBQ2hFLE9BQU8sRUFBRSxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsT0FBTyxFQUFFLENBQUE7QUFDaEQsQ0FBQztBQUVELHNDQUFzQztBQUN0QyxNQUFNLFVBQVUsWUFBWTtJQUMxQixPQUFPLEVBQUUsSUFBSSxFQUFFLG1CQUFtQixFQUFFLENBQUE7QUFDdEMsQ0FBQztBQUVELG9DQUFvQztBQUNwQyxNQUFNLFVBQVUsVUFBVSxDQUFDLE9BQTJCO0lBQ3BELElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLENBQUE7SUFDN0QsT0FBTyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUM3QyxDQUFDO0FBRUQsbUNBQW1DO0FBQ25DLE1BQU0sVUFBVSxTQUFTLENBQUMsT0FBMEI7SUFDbEQsSUFBSSxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQTtJQUM1RCxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxDQUFBO0FBQzVDLENBQUM7QUFFRCwrQkFBK0I7QUFDL0IsTUFBTSxVQUFVLEtBQUssQ0FBQyxPQUFzQjtJQUMxQyxJQUFJLE9BQU8sS0FBSyxTQUFTO1FBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsQ0FBQTtJQUN4RCxPQUFPLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUN4QyxDQUFDO0FBRUQsb0NBQW9DO0FBQ3BDLE1BQU0sVUFBVSxVQUFVLENBQUMsT0FBMkI7SUFDcEQsSUFBSSxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQTtJQUM3RCxPQUFPLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxDQUFBO0FBQzdDLENBQUM7QUFFRCwyQ0FBMkM7QUFDM0MsTUFBTSxVQUFVLGlCQUFpQjtJQUMvQixPQUFPLEVBQUUsSUFBSSxFQUFFLHdCQUF3QixFQUFFLENBQUE7QUFDM0MsQ0FBQztBQUVELG1DQUFtQztBQUNuQyxNQUFNLFVBQVUsU0FBUyxDQUFDLE9BQTBCO0lBQ2xELElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLENBQUE7SUFDNUQsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUM1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR2VuZXJhdGVkIGJ5IGBwbnBtIGdlbmVyYXRlOmJpbmRpbmdzYCBmcm9tIHRoZSBjcmF0ZSdzIHBsdWdpbnM7IGRvIG5vdCBlZGl0LlxuXG5pbXBvcnQgdHlwZSB7IFJvb3QgfSBmcm9tIFwiaGFzdFwiXG5pbXBvcnQgdHlwZSB7IFBhcnNlciwgUGx1Z2luIH0gZnJvbSBcIi4uL21vZGVscy9wbHVnaW4udHNcIlxuXG4vKiogYGh0bWwucGFyc2VgOiBIVE1MIGludG8gaGFzdDsgb3B0aW9ucyBuYW1lZCBhcyByZWh5cGUtcGFyc2UgbmFtZXMgdGhlbS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VPcHRpb25zIHtcbiAgLyoqIFBhcnNlIGEgZnJhZ21lbnQsIGFzIGluIGEgYHRlbXBsYXRlYCwgcmF0aGVyIHRoYW4gYSB3aG9sZSBkb2N1bWVudC4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgZnJhZ21lbnQ/OiBib29sZWFuXG4gIC8qKiBSZXBvcnQgcGFyc2UgZXJyb3JzIGFzIG1lc3NhZ2VzIG9uIHRoZSBmaWxlLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBlbWl0UGFyc2VFcnJvcnM/OiBib29sZWFuXG4gIC8qKiBBZGQgdGhlIHBvc2l0aW9ucyBvZiBvcGVuaW5nIGFuZCBjbG9zaW5nIHRhZ3MgYW5kIGF0dHJpYnV0ZXMgdG8gZWxlbWVudHMuIEBkZWZhdWx0IGZhbHNlICovXG4gIHZlcmJvc2U/OiBib29sZWFuXG59XG5cbi8qKiBgaHRtbC5yYXdgOiByZXBhcnNlIHJhdyBIVE1MIGFuZCBmaXggbmVzdGluZyB0aHJvdWdoIHRoZSBIVE1MIHBhcnNlcjsgb3B0aW9ucyBuYW1lZCBhcyBoYXN0LXV0aWwtcmF3IG5hbWVzIHRoZW0uICovXG5leHBvcnQgaW50ZXJmYWNlIFJhd09wdGlvbnMge1xuICAvKiogTm9kZSB0eXBlcywgdW5rbm93biB0byBoYXN0LCB0byBjb3B5IHRocm91Z2ggYXMgdGhleSBhcmU7IHRoZWlyIGNoaWxkcmVuIGFyZSByZXBhcnNlZCBvbiB0aGVpciBvd24uIEBkZWZhdWx0IFtdICovXG4gIHBhc3NUaHJvdWdoPzogc3RyaW5nW11cbiAgLyoqIEVzY2FwZSB0aGUgb3BlbmluZyBgPGAgb2YgdGhlIHRhZ3MgR0ZNJ3MgdGFnZmlsdGVyIGRpc2FsbG93cyBpbiByYXcgbm9kZXMuIEBkZWZhdWx0IGZhbHNlICovXG4gIHRhZ2ZpbHRlcj86IGJvb2xlYW5cbn1cblxuLyoqIGBodG1sLmZvcm1hdGA6IGluZGVudCBhbmQgY29sbGFwc2Ugd2hpdGVzcGFjZSBmb3IgcmVhZGFibGUgSFRNTDsgb3B0aW9ucyBuYW1lZCBhcyBoYXN0LXV0aWwtZm9ybWF0IG5hbWVzIHRoZW0uICovXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1hdE9wdGlvbnMge1xuICAvKiogVGFnIG5hbWVzIG9mIGVsZW1lbnRzIHRvIHB1dCBhIGJsYW5rIGxpbmUgYmV0d2Vlbiwgd2hlbiBib3RoIGFyZSBvbmUuIEBkZWZhdWx0IFtdICovXG4gIGJsYW5rcz86IHN0cmluZ1tdXG4gIC8qKiBPbmUgbGV2ZWwgb2YgaW5kZW50YXRpb246IGEgbnVtYmVyIG9mIHNwYWNlcyBvciB0aGUgdGV4dCBpdHNlbGY7IHR3byBzcGFjZXMgd2hlbiBsZWZ0IG91dC4gKi9cbiAgaW5kZW50PzogSW5kZW50IHwgbnVsbFxuICAvKiogSW5kZW50IHRoZSBmaXJzdCBsZXZlbCwgdXN1YWxseSBgPGh0bWw+YCdzIGBoZWFkYCBhbmQgYGJvZHlgOyBgdHJ1ZWAgd2hlbiBsZWZ0IG91dC4gKi9cbiAgaW5kZW50SW5pdGlhbD86IGJvb2xlYW4gfCBudWxsXG59XG5cbi8qKiBPbmUgbGV2ZWwgb2YgaW5kZW50YXRpb24uICovXG5leHBvcnQgdHlwZSBJbmRlbnQgPSBudW1iZXIgfCBzdHJpbmdcblxuLyoqIGBodG1sLnNhbml0aXplYDoga2VlcCBvbmx5IHdoYXQgYSBzY2hlbWEgYWxsb3dzOyBvcHRpb25zOiBoYXN0LXV0aWwtc2FuaXRpemUncyBzY2hlbWEsIHdoZXJlIGEgZmllbGQgbGVmdCBvdXQga2VlcHMgdGhlIGRlZmF1bHQgc2NoZW1hJ3MsIHdoaWNoIGlzIEdpdEh1YidzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTYW5pdGl6ZU9wdGlvbnMge1xuICAvKiogS2VlcCBjb21tZW50cy4gKi9cbiAgYWxsb3dDb21tZW50cz86IGJvb2xlYW4gfCBudWxsXG4gIC8qKiBLZWVwIGRvY3R5cGVzLiAqL1xuICBhbGxvd0RvY3R5cGVzPzogYm9vbGVhbiB8IG51bGxcbiAgLyoqIEVsZW1lbnRzIGFsbG93ZWQgb25seSBpbnNpZGUgb25lIG9mIHRoZXNlIGFuY2VzdG9ycywgYnkgdGFnIG5hbWUuICovXG4gIGFuY2VzdG9ycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiB8IG51bGxcbiAgLyoqIFByb3BlcnRpZXMgYWxsb3dlZCBwZXIgdGFnIG5hbWUsIGAqYCBmb3IgZXZlcnkgZWxlbWVudDsgYSBsaXN0IG5hbWVzIGEgcHJvcGVydHkgYW5kIHRoZSB2YWx1ZXMgaXQgbWF5IGhhdmUuICovXG4gIGF0dHJpYnV0ZXM/OiBSZWNvcmQ8c3RyaW5nLCBBdHRyaWJ1dGVEZWZpbml0aW9uW10+IHwgbnVsbFxuICAvKiogUHJvcGVydGllcyB3aG9zZSB2YWx1ZXMgZ2V0IGBjbG9iYmVyX3ByZWZpeGAsIHNvIHRoZXkgY2Fubm90IGNsb2JiZXIgZ2xvYmFscy4gKi9cbiAgY2xvYmJlcj86IHN0cmluZ1tdIHwgbnVsbFxuICAvKiogVGhlIHByZWZpeCBvZiBjbG9iYmVyZWQgdmFsdWVzLiAqL1xuICBjbG9iYmVyUHJlZml4Pzogc3RyaW5nIHwgbnVsbFxuICAvKiogVVJMIHByb3BlcnRpZXMgYW5kIHRoZSBwcm90b2NvbHMgdGhleSBtYXkgdXNlLiAqL1xuICBwcm90b2NvbHM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gfCBudWxsXG4gIC8qKiBQcm9wZXJ0aWVzIHNldCBvbiBlbGVtZW50cyB3aGF0ZXZlciB0aGV5IGhhZCwgYnkgdGFnIG5hbWUuICovXG4gIHJlcXVpcmVkPzogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgUHJpbWl0aXZlPj4gfCBudWxsXG4gIC8qKiBFbGVtZW50cyBkcm9wcGVkIHdpdGggdGhlaXIgY29udGVudCByYXRoZXIgdGhhbiB1bndyYXBwZWQuICovXG4gIHN0cmlwPzogc3RyaW5nW10gfCBudWxsXG4gIC8qKiBUaGUgZWxlbWVudHMga2VwdC4gKi9cbiAgdGFnTmFtZXM/OiBzdHJpbmdbXSB8IG51bGxcbn1cblxuLyoqIEEgcHJvcGVydHkgYSBzYW5pdGl6ZSBzY2hlbWEgYWxsb3dzOiBieSBuYW1lLCBvciBhIG5hbWUgYW5kIGl0cyBhbGxvd2VkIHZhbHVlcy4gKi9cbmV4cG9ydCB0eXBlIEF0dHJpYnV0ZURlZmluaXRpb24gPSBzdHJpbmcgfCBQcmltaXRpdmVbXVxuXG4vKiogQSBwcmltaXRpdmUgcHJvcGVydHkgdmFsdWUuICovXG5leHBvcnQgdHlwZSBQcmltaXRpdmUgPSBib29sZWFuIHwgbnVtYmVyIHwgc3RyaW5nXG5cbi8qKiBgaHRtbC5zbHVnYDogaWRzIG9uIGhlYWRpbmdzLCBmcm9tIHRoZWlyIHRleHQ7IG9wdGlvbnMgbmFtZWQgYXMgcmVoeXBlLXNsdWcgbmFtZXMgdGhlbS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2x1Z09wdGlvbnMge1xuICAvKiogUHV0IGJlZm9yZSBlYWNoIGlkLiBAZGVmYXVsdCBcIlwiICovXG4gIHByZWZpeD86IHN0cmluZ1xufVxuXG4vKiogYGh0bWwuZXh0ZXJuYWxMaW5rc2A6IGByZWxgLCBgdGFyZ2V0YCBhbmQgbW9yZSBvbiBsaW5rcyB0byBvdGhlciBzaXRlcywgYXMgcmVoeXBlLWV4dGVybmFsLWxpbmtzIGFkZHMgdGhlbTsgb3B0aW9ucyBuYW1lZCBhcyBpdCBuYW1lcyB0aGVtLCBKU09OIHZhbHVlcyBvbmx5LiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeHRlcm5hbExpbmtzT3B0aW9ucyB7XG4gIC8qKiBUaGUgYHRhcmdldGAgb2YgZWFjaCBleHRlcm5hbCBsaW5rLCBzdWNoIGFzIGBfYmxhbmtgLiAqL1xuICB0YXJnZXQ/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBUaGUgYHJlbGAgb2YgZWFjaCBleHRlcm5hbCBsaW5rOiBhIGxpc3QsIG9yIHRva2VucyBzZXBhcmF0ZWQgYnkgd2hpdGUgc3BhY2U7IGBub2ZvbGxvd2Agd2hlbiBsZWZ0IG91dCBvciBlbXB0eSwgbm9uZSBmb3IgYW4gZW1wdHkgbGlzdC4gKi9cbiAgcmVsPzogVG9rZW5zIHwgbnVsbFxuICAvKiogVGhlIHByb3RvY29scyBvZiBhYnNvbHV0ZSBVUkxzIHRoYXQgY291bnQgYXMgZXh0ZXJuYWw7IGBodHRwYCBhbmQgYGh0dHBzYCB3aGVuIGxlZnQgb3V0LiBBIHByb3RvY29sLXJlbGF0aXZlIGAvL+KApmAgVVJMIGFsd2F5cyBjb3VudHMuICovXG4gIHByb3RvY29scz86IHN0cmluZ1tdIHwgbnVsbFxuICAvKiogTW9yZSBwcm9wZXJ0aWVzIGZvciBlYWNoIGV4dGVybmFsIGxpbmssIGFzIGhhc3QgbmFtZXMgdGhlbS4gKi9cbiAgcHJvcGVydGllcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbFxuICAvKiogaGFzdCBjb250ZW50IGFwcGVuZGVkIHRvIGVhY2ggZXh0ZXJuYWwgbGluayBpbiBhIGA8c3Bhbj5gOiBvbmUgbm9kZSBvciBhIGxpc3QuICovXG4gIGNvbnRlbnQ/OiB1bmtub3duXG4gIC8qKiBUaGUgcHJvcGVydGllcyBvZiB0aGF0IGA8c3Bhbj5gLiAqL1xuICBjb250ZW50UHJvcGVydGllcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbFxufVxuXG4vKiogVG9rZW5zOiBhIGxpc3QsIG9yIG9uZSBzdHJpbmcgb2YgdGhlbSBzZXBhcmF0ZWQgYnkgd2hpdGUgc3BhY2UuICovXG5leHBvcnQgdHlwZSBUb2tlbnMgPSBzdHJpbmcgfCBzdHJpbmdbXVxuXG4vKiogYGh0bWwuZXh0cmFjdFRvY2A6IHRoZSBoZWFkaW5ncywgbmVzdGVkIGJ5IHJhbmssIGFzIHRoZSBmaWxlJ3MgYGRhdGEudG9jYCwgYXMgQHN0ZWZhbnByb2JzdC9yZWh5cGUtZXh0cmFjdC10b2Mgc3RvcmVzIHRoZW0uICovXG5leHBvcnQgaW50ZXJmYWNlIEV4dHJhY3RUb2NPcHRpb25zIHtcbiAgLyoqIEF0dHJpYnV0ZXMsIHN1Y2ggYXMgYGRhdGEtdG9jLWhpZGRlbmAsIHRoYXQga2VlcCBhIGhlYWRpbmcgb3V0IG9mIHRoZSB0YWJsZSBvZiBjb250ZW50czsgd2hhdCB3b3VsZCBuZXN0IHVuZGVyIGl0IG5lc3RzIHVuZGVyIHRoZSBoZWFkaW5nIGJlZm9yZS4gQGRlZmF1bHQgW10gKi9cbiAgc2tpcD86IHN0cmluZ1tdXG59XG5cbi8qKiBgaHRtbC5oaWdobGlnaHRgOiBjb2RlIGJsb2NrcyBjb2xvcmVkIGFzIFNoaWtpIGNvbG9ycyB0aGVtLCBuYXRpdmVseSBieSBnaWFsbG87IG9wdGlvbnMgbmFtZWQgYXMgQHNoaWtpanMvcmVoeXBlIG5hbWVzIHRoZW0uICovXG5leHBvcnQgaW50ZXJmYWNlIEhpZ2hsaWdodE9wdGlvbnMge1xuICAvKiogVGhlIHRoZW1lIG9mIGVhY2ggY29sb3IgbW9kZSwgYGxpZ2h0YCBmaXJzdCwgYXMgYHtcImxpZ2h0XCI6IOKApiwgXCJkYXJrXCI6IOKApn1gLiAqL1xuICB0aGVtZXM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGxcbiAgLyoqIFRoZSBvbmUgdGhlbWUsIHdoZW4gYHRoZW1lc2AgaXMgbm90IGdpdmVuLiAqL1xuICB0aGVtZT86IHN0cmluZyB8IG51bGxcbiAgLyoqIFRoZSBsYW5ndWFnZSBvZiBhIGJsb2NrIHRoYXQgbmFtZXMgbm9uZTsgc3VjaCBhIGJsb2NrIGlzIGxlZnQgYWxvbmUgd2l0aG91dCBpdC4gKi9cbiAgZGVmYXVsdExhbmd1YWdlPzogc3RyaW5nIHwgbnVsbFxuICAvKiogVGhlIGxhbmd1YWdlIG9mIGEgYmxvY2sgbmFtaW5nIG9uZSBTaGlraSBkb2VzIG5vdCBrbm93OyBsZWZ0IGFsb25lIHdpdGhvdXQgaXQuICovXG4gIGZhbGxiYWNrTGFuZ3VhZ2U/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBDb2xvcnMgdG8gcmVwbGFjZSwgYnkgdGhlaXIgbG93ZXJjYXNlIHNwZWxsaW5nOiBhIGNvbG9yIGZvciBldmVyeSB0aGVtZSwgb3IgYSB0aGVtZSdzIG5hbWUgdG8gYSBtYXAgb2YgaXRzIG93bi4gKi9cbiAgY29sb3JSZXBsYWNlbWVudHM/OiBSZWNvcmQ8c3RyaW5nLCBDb2xvclJlcGxhY2VtZW50PlxuICAvKiogQWRkIGBsYW5ndWFnZS08bmFtZT5gIHRvIGVhY2ggaGlnaGxpZ2h0ZWQgYDxjb2RlPmAuIEBkZWZhdWx0IGZhbHNlICovXG4gIGFkZExhbmd1YWdlQ2xhc3M/OiBib29sZWFuXG4gIC8qKiBIaWdobGlnaHQgaW5saW5lIGNvZGUgdG9vLCBieSBob3cgaXQgbmFtZXMgaXRzIGxhbmd1YWdlOiBgdGFpbGluZy1jdXJseS1jb2xvbmAgcmVhZHMgYGAgYGEoKXs6anN9YCBgYC4gKi9cbiAgaW5saW5lPzogSW5saW5lQ29kZSB8IG51bGxcbiAgLyoqIFRoZSBgPHByZT5gIHByb3BlcnR5IHRoYXQgZ2V0cyBhIGJsb2NrJ3MgbWV0YSwgdGhlIHRleHQgYWZ0ZXIgaXRzIGxhbmd1YWdlOyB0aGUgSlNPTiBzdGFuZC1pbiBmb3IgYHBhcnNlTWV0YVN0cmluZzogbWV0YSA9PiAoeyBbbmFtZV06IG1ldGEgfSlgLiAqL1xuICBtZXRhUHJvcGVydHk/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBUaGUgdHJhbnNmb3JtZXJzIG9mIEBzaGlraWpzL3RyYW5zZm9ybWVycyB0byBydW4sIGluIG9yZGVyLCBieSBuYW1lIG9yIHdpdGggb3B0aW9ucy4gKi9cbiAgdHJhbnNmb3JtZXJzPzogSGlnaGxpZ2h0VHJhbnNmb3JtZXJbXVxuICAvKiogTGluZXMgYXQgbGVhc3QgdGhpcyBsb25nLCBpbiBVVEYtMTYgdW5pdHMsIGFyZSBsZWZ0IG9uZSBwbGFpbiB0b2tlbiBhcyBTaGlraSdzIG93biBvcHRpb24gbGVhdmVzIHRoZW07IDIsMDAwIHdoZW4gbGVmdCBvdXQsIHdoZXJlIFNoaWtpIGhhcyBubyBsaW1pdCwgc2luY2UgYSBncmFtbWFyJ3MgdGltZSBncm93cyB3aXRoIHRoZSBzcXVhcmUgb2YgYSBsaW5lJ3MgbGVuZ3RoLiBgMGAgbGlmdHMgaXQuICovXG4gIHRva2VuaXplTWF4TGluZUxlbmd0aD86IG51bWJlciB8IG51bGxcbn1cblxuLyoqIEEgcmVwbGFjZW1lbnQgY29sb3IsIG9yIGEgdGhlbWUncyBvd24gcmVwbGFjZW1lbnRzLiAqL1xuZXhwb3J0IHR5cGUgQ29sb3JSZXBsYWNlbWVudCA9IHN0cmluZyB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cblxuLyoqIEhvdyBpbmxpbmUgY29kZSBuYW1lcyBpdHMgbGFuZ3VhZ2UuICovXG5leHBvcnQgdHlwZSBJbmxpbmVDb2RlID0gXCJ0YWlsaW5nLWN1cmx5LWNvbG9uXCJcblxuLyoqIEEgdHJhbnNmb3JtZXIgb2YgQHNoaWtpanMvdHJhbnNmb3JtZXJzOiBpdHMgbmFtZSBhbG9uZSwgb3IgaXRzIG5hbWUgYW5kIG9wdGlvbnMuICovXG5leHBvcnQgdHlwZSBIaWdobGlnaHRUcmFuc2Zvcm1lciA9IFRyYW5zZm9ybWVyTmFtZSB8IENvbmZpZ3VyZWRUcmFuc2Zvcm1lclxuXG4vKiogVGhlIHRyYW5zZm9ybWVycyBgaHRtbC5oaWdobGlnaHRgIHJ1bnMgbmF0aXZlbHkuICovXG5leHBvcnQgdHlwZSBUcmFuc2Zvcm1lck5hbWUgPSBcIm5vdGF0aW9uRGlmZlwiIHwgXCJub3RhdGlvbkZvY3VzXCIgfCBcIm5vdGF0aW9uSGlnaGxpZ2h0XCIgfCBcIm5vdGF0aW9uRXJyb3JMZXZlbFwiIHwgXCJtZXRhSGlnaGxpZ2h0XCIgfCBcIm1ldGFXb3JkSGlnaGxpZ2h0XCIgfCBcInJlbmRlckxpbmVOdW1iZXJcIlxuXG4vKiogQSB0cmFuc2Zvcm1lciB3aXRoIGl0cyBvcHRpb25zLCBhcyBAc2hpa2lqcy90cmFuc2Zvcm1lcnMgbmFtZXMgdGhlbS4gKi9cbmV4cG9ydCB0eXBlIENvbmZpZ3VyZWRUcmFuc2Zvcm1lciA9IHsgbmFtZTogXCJub3RhdGlvbkRpZmZcIjsgY2xhc3NMaW5lQWRkPzogQ2xhc3NlcyB8IG51bGw7IGNsYXNzTGluZVJlbW92ZT86IENsYXNzZXMgfCBudWxsOyBjbGFzc0FjdGl2ZVByZT86IENsYXNzZXMgfCBudWxsOyBjbGFzc0FjdGl2ZUNvZGU/OiBDbGFzc2VzIHwgbnVsbCB9IHwgeyBuYW1lOiBcIm5vdGF0aW9uRm9jdXNcIjsgY2xhc3NBY3RpdmVMaW5lPzogQ2xhc3NlcyB8IG51bGw7IGNsYXNzQWN0aXZlUHJlPzogQ2xhc3NlcyB8IG51bGw7IGNsYXNzQWN0aXZlQ29kZT86IENsYXNzZXMgfCBudWxsIH0gfCB7IG5hbWU6IFwibm90YXRpb25IaWdobGlnaHRcIjsgY2xhc3NBY3RpdmVMaW5lPzogQ2xhc3NlcyB8IG51bGw7IGNsYXNzQWN0aXZlUHJlPzogQ2xhc3NlcyB8IG51bGw7IGNsYXNzQWN0aXZlQ29kZT86IENsYXNzZXMgfCBudWxsIH0gfCB7IG5hbWU6IFwibm90YXRpb25FcnJvckxldmVsXCI7IGNsYXNzTWFwPzogUmVjb3JkPHN0cmluZywgQ2xhc3Nlcz4gfCBudWxsOyBjbGFzc0FjdGl2ZVByZT86IENsYXNzZXMgfCBudWxsOyBjbGFzc0FjdGl2ZUNvZGU/OiBDbGFzc2VzIHwgbnVsbCB9IHwgeyBuYW1lOiBcIm1ldGFIaWdobGlnaHRcIjsgY2xhc3NOYW1lPzogQ2xhc3NlcyB8IG51bGw7IHplcm9JbmRleGVkPzogYm9vbGVhbiB9IHwgeyBuYW1lOiBcIm1ldGFXb3JkSGlnaGxpZ2h0XCI7IGNsYXNzTmFtZT86IENsYXNzZXMgfCBudWxsIH0gfCB7IG5hbWU6IFwicmVuZGVyTGluZU51bWJlclwiOyBjbGFzc0xpbmVOdW1iZXI/OiBDbGFzc2VzIHwgbnVsbDsgc3RhcnQ/OiBudW1iZXIgfCBudWxsIH1cblxuLyoqIENsYXNzIG5hbWVzOiBhIGxpc3QsIG9yIG9uZSBzdHJpbmcgb2YgdGhlbSBzZXBhcmF0ZWQgYnkgd2hpdGUgc3BhY2UuICovXG5leHBvcnQgdHlwZSBDbGFzc2VzID0gc3RyaW5nIHwgc3RyaW5nW11cblxuLyoqIGBodG1sLmthdGV4YDogbWF0aCByZW5kZXJlZCBhcyByZWh5cGUta2F0ZXggcmVuZGVycyBpdCwgbmF0aXZlbHkgYnkga2F0ZXgtcnM7IG9wdGlvbnMgbmFtZWQgYXMgS2FUZVggbmFtZXMgdGhlbS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2F0ZXhPcHRpb25zIHtcbiAgLyoqIFRoZSBtYXJrdXAgdG8gd3JpdGUsIGJvdGggSFRNTCBhbmQgTWF0aE1MIGJ5IGRlZmF1bHQuICovXG4gIG91dHB1dD86IEthdGV4T3V0cHV0IHwgbnVsbFxuICAvKiogUHV0IGVxdWF0aW9uIG51bWJlcnMgb24gdGhlIGxlZnQuIEBkZWZhdWx0IGZhbHNlICovXG4gIGxlcW5vPzogYm9vbGVhblxuICAvKiogQWxpZ24gZGlzcGxheSBtYXRoIHRvIHRoZSBsZWZ0IGluc3RlYWQgb2YgY2VudGVyaW5nIGl0LiBAZGVmYXVsdCBmYWxzZSAqL1xuICBmbGVxbj86IGJvb2xlYW5cbiAgLyoqIFRoZSBjb2xvciBvZiBtYXRoIHRoYXQgZmFpbHMgdG8gcmVuZGVyLCBgI2NjMDAwMGAgYnkgZGVmYXVsdC4gKi9cbiAgZXJyb3JDb2xvcj86IHN0cmluZyB8IG51bGxcbiAgLyoqIE1hY3JvcyBieSBuYW1lLCBlYWNoIHRvIHRoZSBUZVggaXQgZXhwYW5kcyB0bywgYXMgYHtcIlxcXFxSUlwiOiBcIlxcXFxtYXRoYmJ7Un1cIn1gLiBAZGVmYXVsdCB7fSAqL1xuICBtYWNyb3M/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG4gIC8qKiBUaGUgdGhpbm5lc3QgYSBydWxlLCBzdWNoIGFzIGEgZnJhY3Rpb24gbGluZSwgaXMgZHJhd24sIGluIGVtcy4gKi9cbiAgbWluUnVsZVRoaWNrbmVzcz86IG51bWJlciB8IG51bGxcbiAgLyoqIExldCBgXFxjb2xvcmAgY29sb3IgdGhlIHRleHQgYWZ0ZXIgaXQsIGFzIExhVGVYIGRvZXMuIEBkZWZhdWx0IGZhbHNlICovXG4gIGNvbG9ySXNUZXh0Q29sb3I/OiBib29sZWFuXG4gIC8qKiBXaGF0IHRvIGRvIHdpdGggaW5wdXQgTGFUZVggd291bGQgcmVqZWN0OiBgdHJ1ZWAgb3IgYFwiZXJyb3JcImAgZmFpbHMgaXQsIGBcIndhcm5cImAgcHJpbnRzIGEgd2FybmluZywgYGZhbHNlYCBvciBgXCJpZ25vcmVcImAgKHRoZSBkZWZhdWx0KSBhY2NlcHRzIGl0LiAqL1xuICBzdHJpY3Q/OiBLYXRleFN0cmljdCB8IG51bGxcbiAgLyoqIEFsbG93IGNvbW1hbmRzIHRoYXQgY2FuIHJ1biB1bnRydXN0ZWQgaW5wdXQsIHN1Y2ggYXMgYFxcaHJlZmAgYW5kIGBcXGluY2x1ZGVncmFwaGljc2AuIEBkZWZhdWx0IGZhbHNlICovXG4gIHRydXN0PzogYm9vbGVhblxuICAvKiogVGhlIGxhcmdlc3QgYSB1c2VyLWdpdmVuIHNpemUgbWF5IGJlLCBpbiBlbXMuICovXG4gIG1heFNpemU/OiBudW1iZXIgfCBudWxsXG4gIC8qKiBIb3cgbWFueSBtYWNybyBleHBhbnNpb25zIG9uZSBmb3JtdWxhIG1heSB0YWtlLCAxMDAwIGJ5IGRlZmF1bHQuICovXG4gIG1heEV4cGFuZD86IG51bWJlciB8IG51bGxcbiAgLyoqIExldCBkZWZpbml0aW9ucyBzdWNoIGFzIGBcXGRlZmAgbGFzdCBwYXN0IHRoZSBmb3JtdWxhIHRoZXkgYXJlIGluLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBnbG9iYWxHcm91cD86IGJvb2xlYW5cbn1cblxuLyoqIFRoZSBtYXJrdXAgS2FUZVggd3JpdGVzLiAqL1xuZXhwb3J0IHR5cGUgS2F0ZXhPdXRwdXQgPSBcImh0bWxcIiB8IFwibWF0aG1sXCIgfCBcImh0bWxBbmRNYXRobWxcIlxuXG4vKiogSG93IHN0cmljdGx5IEthVGVYIGhvbGRzIGlucHV0IHRvIExhVGVYLiAqL1xuZXhwb3J0IHR5cGUgS2F0ZXhTdHJpY3QgPSBib29sZWFuIHwgS2F0ZXhTdHJpY3RNb2RlXG5cbi8qKiBPbmUgbGV2ZWwgb2YgS2FUZVgncyBzdHJpY3RuZXNzLiAqL1xuZXhwb3J0IHR5cGUgS2F0ZXhTdHJpY3RNb2RlID0gXCJpZ25vcmVcIiB8IFwid2FyblwiIHwgXCJlcnJvclwiXG5cbi8qKiBgaHRtbC50b01hcmtkb3duYDogaGFzdCBpbnRvIG1kYXN0OyBvcHRpb25zIG5hbWVkIGFzIGhhc3QtdXRpbC10by1tZGFzdCBuYW1lcyB0aGVtLiAqL1xuZXhwb3J0IGludGVyZmFjZSBUb01hcmtkb3duT3B0aW9ucyB7XG4gIC8qKiBXcmFwIGFsbCBwaHJhc2luZyBjb250ZW50IG9mIHRoZSByb290IGluIHBhcmFncmFwaHMsIGFzIGZvciBhIHdob2xlIGRvY3VtZW50LiBAZGVmYXVsdCBmYWxzZSAqL1xuICBkb2N1bWVudD86IGJvb2xlYW5cbiAgLyoqIENvbGxhcHNlIHdoaXRlc3BhY2UgaG9sZGluZyBhIGxpbmUgZW5kaW5nIHRvIHRoYXQgbGluZSBlbmRpbmcgaW5zdGVhZCBvZiBhIHNwYWNlLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBuZXdsaW5lcz86IGJvb2xlYW5cbiAgLyoqIFRoZSB0ZXh0IG9mIGEgY2hlY2tlZCBjaGVja2JveCBvciByYWRpbywgYFt4XWAgYnkgZGVmYXVsdC4gKi9cbiAgY2hlY2tlZD86IHN0cmluZyB8IG51bGxcbiAgLyoqIFRoZSB0ZXh0IG9mIGFuIHVuY2hlY2tlZCBjaGVja2JveCBvciByYWRpbywgYFsgXWAgYnkgZGVmYXVsdC4gKi9cbiAgdW5jaGVja2VkPzogc3RyaW5nIHwgbnVsbFxuICAvKiogVGhlIHF1b3RlcyBgPHE+YCB1c2VzLCBhbiBvcGVuaW5nIGFuZCBjbG9zaW5nIGNoYXJhY3RlciBlYWNoLCBhbHRlcm5hdGluZyBieSBob3cgZGVlcCBpdCBuZXN0czsgYFwiYCBieSBkZWZhdWx0LiAqL1xuICBxdW90ZXM/OiBzdHJpbmdbXSB8IG51bGxcbn1cblxuLyoqIGBodG1sLnN0cmluZ2lmeWA6IGhhc3QgaW50byBIVE1MOyBvcHRpb25zIG5hbWVkIGFzIGhhc3QtdXRpbC10by1odG1sIG5hbWVzIHRoZW0uICovXG5leHBvcnQgaW50ZXJmYWNlIFN0cmluZ2lmeU9wdGlvbnMge1xuICAvKiogV3JpdGUgcmF3IG5vZGVzIGFzIHRoZXkgYXJlIGluc3RlYWQgb2YgZXNjYXBpbmcgdGhlbS4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgYWxsb3dEYW5nZXJvdXNIdG1sPzogYm9vbGVhblxuICAvKiogTGVhdmUgY2hhcmFjdGVycyB0aGF0IGFyZSBvbmx5IGRhbmdlcm91cyBpbiBzb21lIGNvbnRleHRzLCBzdWNoIGFzIGBgIGAgYGAsIGFzIHRoZXkgYXJlLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBhbGxvd0Rhbmdlcm91c0NoYXJhY3RlcnM/OiBib29sZWFuXG4gIC8qKiBMZWF2ZSBjaGFyYWN0ZXJzIGFzIHRoZXkgYXJlIHdoZXJlIGJyb3dzZXJzIGFjY2VwdCB0aGVtIHRob3VnaCB0aGUgc3BlYyBkb2VzIG5vdC4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgYWxsb3dQYXJzZUVycm9ycz86IGJvb2xlYW5cbiAgLyoqIFdyaXRlIGNvbW1lbnRzIGFzIGJvZ3VzIGNvbW1lbnRzLCBgPD9hPmAuIEBkZWZhdWx0IGZhbHNlICovXG4gIGJvZ3VzQ29tbWVudHM/OiBib29sZWFuXG4gIC8qKiBDbG9zZSBlbXB0eSBmb3JlaWduIGVsZW1lbnRzLCBgPGEgLz5gLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBjbG9zZUVtcHR5RWxlbWVudHM/OiBib29sZWFuXG4gIC8qKiBDbG9zZSB2b2lkIGVsZW1lbnRzLCBgPGJyIC8+YC4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgY2xvc2VTZWxmQ2xvc2luZz86IGJvb2xlYW5cbiAgLyoqIFdyaXRlIGVtcHR5IGF0dHJpYnV0ZXMgYXMgYmFyZSBuYW1lcywgYGFgIHJhdGhlciB0aGFuIGBhPVwiXCJgLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBjb2xsYXBzZUVtcHR5QXR0cmlidXRlcz86IGJvb2xlYW5cbiAgLyoqIExlYXZlIG91dCB0YWdzIHRoZSBIVE1MIHNwZWMgbGV0cyBhIHBhcnNlciBpbXBseS4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgb21pdE9wdGlvbmFsVGFncz86IGJvb2xlYW5cbiAgLyoqIExlYXZlIGF0dHJpYnV0ZSB2YWx1ZXMgdW5xdW90ZWQgd2hlcmUgdGhhdCBpcyBzYWZlLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBwcmVmZXJVbnF1b3RlZD86IGJvb2xlYW5cbiAgLyoqIFRoZSBxdW90ZSBhdHRyaWJ1dGUgdmFsdWVzIGFyZSB3cmFwcGVkIGluOiBgXCJgIG9yIGAnYC4gKi9cbiAgcXVvdGU/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBVc2UgdGhlIG90aGVyIHF1b3RlIHdoZW4gdGhlIHZhbHVlIGhvbGRzIG1vcmUgb2YgdGhlIHByZWZlcnJlZCBvbmUuIEBkZWZhdWx0IGZhbHNlICovXG4gIHF1b3RlU21hcnQ/OiBib29sZWFuXG4gIC8qKiBUaGUgc3BhY2UgdGhlIHRyZWUgaXMgaW46IGBodG1sYCBvciBgc3ZnYC4gKi9cbiAgc3BhY2U/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBMZWF2ZSBvdXQgdGhlIHNwYWNlIGJldHdlZW4gcXVvdGVkIGF0dHJpYnV0ZXMuIEBkZWZhdWx0IGZhbHNlICovXG4gIHRpZ2h0QXR0cmlidXRlcz86IGJvb2xlYW5cbiAgLyoqIEpvaW4gY29tbWEtc2VwYXJhdGVkIHZhbHVlcyB3aXRoIGAsYCByYXRoZXIgdGhhbiBgLCBgLiBAZGVmYXVsdCBmYWxzZSAqL1xuICB0aWdodENvbW1hU2VwYXJhdGVkTGlzdHM/OiBib29sZWFuXG4gIC8qKiBXcml0ZSBgPCFkb2N0eXBlaHRtbD5gLiBAZGVmYXVsdCBmYWxzZSAqL1xuICB0aWdodERvY3R5cGU/OiBib29sZWFuXG4gIC8qKiBMZWF2ZSBvdXQgdGhlIHNwYWNlIGJlZm9yZSBgLz5gIHdoZW4gdGhlIGF0dHJpYnV0ZXMgYWxsb3cuIEBkZWZhdWx0IGZhbHNlICovXG4gIHRpZ2h0U2VsZkNsb3Npbmc/OiBib29sZWFuXG4gIC8qKiBXcml0ZSBgPCFET0NUWVBFIGh0bWw+YC4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgdXBwZXJEb2N0eXBlPzogYm9vbGVhblxuICAvKiogVGhlIHRhZyBuYW1lcyBvZiB2b2lkIGVsZW1lbnRzLCB3aGljaCBoYXZlIG5vIGNsb3NpbmcgdGFnLiAqL1xuICB2b2lkcz86IHN0cmluZ1tdIHwgbnVsbFxufVxuXG4vKiogVGhlIGBodG1sLnBhcnNlYCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2Uob3B0aW9ucz86IFBhcnNlT3B0aW9ucyk6IFBsdWdpbjxcImh0bWwucGFyc2VcIiwgUGFyc2VPcHRpb25zPiAmIFBhcnNlcjxSb290PiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwiaHRtbC5wYXJzZVwiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJodG1sLnBhcnNlXCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBodG1sLnJhd2AgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJhdyhvcHRpb25zPzogUmF3T3B0aW9ucyk6IFBsdWdpbjxcImh0bWwucmF3XCIsIFJhd09wdGlvbnM+IHtcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgbmFtZTogXCJodG1sLnJhd1wiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJodG1sLnJhd1wiLCBvcHRpb25zIH1cbn1cblxuLyoqIFRoZSBgaHRtbC5mb3JtYXRgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXQob3B0aW9ucz86IEZvcm1hdE9wdGlvbnMpOiBQbHVnaW48XCJodG1sLmZvcm1hdFwiLCBGb3JtYXRPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwiaHRtbC5mb3JtYXRcIiB9XG4gIHJldHVybiB7IG5hbWU6IFwiaHRtbC5mb3JtYXRcIiwgb3B0aW9ucyB9XG59XG5cbi8qKiBUaGUgYGh0bWwuc2FuaXRpemVgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzYW5pdGl6ZShvcHRpb25zPzogU2FuaXRpemVPcHRpb25zKTogUGx1Z2luPFwiaHRtbC5zYW5pdGl6ZVwiLCBTYW5pdGl6ZU9wdGlvbnM+IHtcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgbmFtZTogXCJodG1sLnNhbml0aXplXCIgfVxuICByZXR1cm4geyBuYW1lOiBcImh0bWwuc2FuaXRpemVcIiwgb3B0aW9ucyB9XG59XG5cbi8qKiBUaGUgYGh0bWwuc2x1Z2AgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNsdWcob3B0aW9ucz86IFNsdWdPcHRpb25zKTogUGx1Z2luPFwiaHRtbC5zbHVnXCIsIFNsdWdPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwiaHRtbC5zbHVnXCIgfVxuICByZXR1cm4geyBuYW1lOiBcImh0bWwuc2x1Z1wiLCBvcHRpb25zIH1cbn1cblxuLyoqIFRoZSBgaHRtbC5leHRlcm5hbExpbmtzYCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gZXh0ZXJuYWxMaW5rcyhvcHRpb25zPzogRXh0ZXJuYWxMaW5rc09wdGlvbnMpOiBQbHVnaW48XCJodG1sLmV4dGVybmFsTGlua3NcIiwgRXh0ZXJuYWxMaW5rc09wdGlvbnM+IHtcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgbmFtZTogXCJodG1sLmV4dGVybmFsTGlua3NcIiB9XG4gIHJldHVybiB7IG5hbWU6IFwiaHRtbC5leHRlcm5hbExpbmtzXCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBodG1sLnVud3JhcEltYWdlc2AgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVud3JhcEltYWdlcygpOiBQbHVnaW48XCJodG1sLnVud3JhcEltYWdlc1wiPiB7XG4gIHJldHVybiB7IG5hbWU6IFwiaHRtbC51bndyYXBJbWFnZXNcIiB9XG59XG5cbi8qKiBUaGUgYGh0bWwuZXh0cmFjdFRvY2AgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RUb2Mob3B0aW9ucz86IEV4dHJhY3RUb2NPcHRpb25zKTogUGx1Z2luPFwiaHRtbC5leHRyYWN0VG9jXCIsIEV4dHJhY3RUb2NPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwiaHRtbC5leHRyYWN0VG9jXCIgfVxuICByZXR1cm4geyBuYW1lOiBcImh0bWwuZXh0cmFjdFRvY1wiLCBvcHRpb25zIH1cbn1cblxuLyoqIFRoZSBgaHRtbC5oaWdobGlnaHRgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoaWdobGlnaHQob3B0aW9ucz86IEhpZ2hsaWdodE9wdGlvbnMpOiBQbHVnaW48XCJodG1sLmhpZ2hsaWdodFwiLCBIaWdobGlnaHRPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwiaHRtbC5oaWdobGlnaHRcIiB9XG4gIHJldHVybiB7IG5hbWU6IFwiaHRtbC5oaWdobGlnaHRcIiwgb3B0aW9ucyB9XG59XG5cbi8qKiBUaGUgYGh0bWwua2F0ZXhgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBrYXRleChvcHRpb25zPzogS2F0ZXhPcHRpb25zKTogUGx1Z2luPFwiaHRtbC5rYXRleFwiLCBLYXRleE9wdGlvbnM+IHtcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgbmFtZTogXCJodG1sLmthdGV4XCIgfVxuICByZXR1cm4geyBuYW1lOiBcImh0bWwua2F0ZXhcIiwgb3B0aW9ucyB9XG59XG5cbi8qKiBUaGUgYGh0bWwudG9NYXJrZG93bmAgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvTWFya2Rvd24ob3B0aW9ucz86IFRvTWFya2Rvd25PcHRpb25zKTogUGx1Z2luPFwiaHRtbC50b01hcmtkb3duXCIsIFRvTWFya2Rvd25PcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwiaHRtbC50b01hcmtkb3duXCIgfVxuICByZXR1cm4geyBuYW1lOiBcImh0bWwudG9NYXJrZG93blwiLCBvcHRpb25zIH1cbn1cblxuLyoqIFRoZSBgaHRtbC50b05hdHVyYWxMYW5ndWFnZWAgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvTmF0dXJhbExhbmd1YWdlKCk6IFBsdWdpbjxcImh0bWwudG9OYXR1cmFsTGFuZ3VhZ2VcIj4ge1xuICByZXR1cm4geyBuYW1lOiBcImh0bWwudG9OYXR1cmFsTGFuZ3VhZ2VcIiB9XG59XG5cbi8qKiBUaGUgYGh0bWwuc3RyaW5naWZ5YCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5KG9wdGlvbnM/OiBTdHJpbmdpZnlPcHRpb25zKTogUGx1Z2luPFwiaHRtbC5zdHJpbmdpZnlcIiwgU3RyaW5naWZ5T3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcImh0bWwuc3RyaW5naWZ5XCIgfVxuICByZXR1cm4geyBuYW1lOiBcImh0bWwuc3RyaW5naWZ5XCIsIG9wdGlvbnMgfVxufVxuIl19
|
package/build/generated/md.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Root } from "mdast";
|
|
2
|
+
import type { Parser, Plugin } from "../models/plugin.ts";
|
|
2
3
|
/** `md.parse`: Markdown into mdast. */
|
|
3
4
|
export type ParseOptions = Record<string, unknown>;
|
|
4
5
|
/** `md.directive`: generic directives, `:a`, `::b` and `:::c`, read by `md.parse` and written by `md.stringify`; options named as mdast-util-directive's serializer names them. */
|
|
@@ -208,6 +209,13 @@ export interface PathRewriteOptions {
|
|
|
208
209
|
export type UrlNode = "image" | "link" | "definition";
|
|
209
210
|
/** How a link to a Markdown file becomes a URL. */
|
|
210
211
|
export type MarkdownLinks = "keep" | "directory" | "html";
|
|
212
|
+
/** `md.shiftHeading`: every heading's depth moved by `shift` and kept within 1 to 6, as rehype-shift-heading moves hast's, after the document's title is dropped when asked. */
|
|
213
|
+
export interface ShiftHeadingOptions {
|
|
214
|
+
/** The levels added to each heading's depth: `-1` makes an h2 an h1, `1` an h1 an h2. @default 0 */
|
|
215
|
+
shift?: number;
|
|
216
|
+
/** Drop the document's first node when it is an h1, looking past frontmatter and ESM. @default false */
|
|
217
|
+
dropTitle?: boolean;
|
|
218
|
+
}
|
|
211
219
|
/** `md.strip`: mdast down to its text, as strip-markdown does: code, HTML, tables and the like dropped, headings made paragraphs, formatting unwrapped. */
|
|
212
220
|
export interface StripOptions {
|
|
213
221
|
/** Node types to leave as they are, such as `inlineCode`. @default [] */
|
|
@@ -332,7 +340,7 @@ export interface ToNaturalLanguageOptions {
|
|
|
332
340
|
source?: string[];
|
|
333
341
|
}
|
|
334
342
|
/** The `md.parse` plugin. */
|
|
335
|
-
export declare function parse(options?: ParseOptions): Plugin<"md.parse", ParseOptions>;
|
|
343
|
+
export declare function parse(options?: ParseOptions): Plugin<"md.parse", ParseOptions> & Parser<Root>;
|
|
336
344
|
/** The `md.directive` plugin. */
|
|
337
345
|
export declare function directive(options?: DirectiveOptions): Plugin<"md.directive", DirectiveOptions>;
|
|
338
346
|
/** The `md.gfm` plugin. */
|
|
@@ -355,6 +363,8 @@ export declare function packageCommand(options?: PackageCommandOptions): Plugin<
|
|
|
355
363
|
export declare function headingId(options?: HeadingIdOptions): Plugin<"md.headingId", HeadingIdOptions>;
|
|
356
364
|
/** The `md.pathRewrite` plugin. */
|
|
357
365
|
export declare function pathRewrite(options?: PathRewriteOptions): Plugin<"md.pathRewrite", PathRewriteOptions>;
|
|
366
|
+
/** The `md.shiftHeading` plugin. */
|
|
367
|
+
export declare function shiftHeading(options?: ShiftHeadingOptions): Plugin<"md.shiftHeading", ShiftHeadingOptions>;
|
|
358
368
|
/** The `md.strip` plugin. */
|
|
359
369
|
export declare function strip(options?: StripOptions): Plugin<"md.strip", StripOptions>;
|
|
360
370
|
/** The `md.toc` plugin. */
|
package/build/generated/md.js
CHANGED
|
@@ -67,6 +67,12 @@ export function pathRewrite(options) {
|
|
|
67
67
|
return { name: "md.pathRewrite" };
|
|
68
68
|
return { name: "md.pathRewrite", options };
|
|
69
69
|
}
|
|
70
|
+
/** The `md.shiftHeading` plugin. */
|
|
71
|
+
export function shiftHeading(options) {
|
|
72
|
+
if (options === undefined)
|
|
73
|
+
return { name: "md.shiftHeading" };
|
|
74
|
+
return { name: "md.shiftHeading", options };
|
|
75
|
+
}
|
|
70
76
|
/** The `md.strip` plugin. */
|
|
71
77
|
export function strip(options) {
|
|
72
78
|
if (options === undefined)
|
|
@@ -97,4 +103,4 @@ export function toNaturalLanguage(options) {
|
|
|
97
103
|
return { name: "md.toNaturalLanguage" };
|
|
98
104
|
return { name: "md.toNaturalLanguage", options };
|
|
99
105
|
}
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9nZW5lcmF0ZWQvbWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0VBQStFO0FBbVgvRSw2QkFBNkI7QUFDN0IsTUFBTSxVQUFVLEtBQUssQ0FBQyxPQUFzQjtJQUMxQyxJQUFJLE9BQU8sS0FBSyxTQUFTO1FBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQTtJQUN0RCxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUN0QyxDQUFDO0FBRUQsaUNBQWlDO0FBQ2pDLE1BQU0sVUFBVSxTQUFTLENBQUMsT0FBMEI7SUFDbEQsSUFBSSxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLENBQUE7SUFDMUQsT0FBTyxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLENBQUE7QUFDMUMsQ0FBQztBQUVELDJCQUEyQjtBQUMzQixNQUFNLFVBQVUsR0FBRyxDQUFDLE9BQW9CO0lBQ3RDLElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFBO0lBQ3BELE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFBO0FBQ3BDLENBQUM7QUFFRCxzQ0FBc0M7QUFDdEMsTUFBTSxVQUFVLGNBQWM7SUFDNUIsT0FBTyxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxDQUFBO0FBQ3RDLENBQUM7QUFFRCw0QkFBNEI7QUFDNUIsTUFBTSxVQUFVLElBQUksQ0FBQyxPQUFxQjtJQUN4QyxJQUFJLE9BQU8sS0FBSyxTQUFTO1FBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQTtJQUNyRCxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUNyQyxDQUFDO0FBRUQsMkJB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Q3ZDLENBQUM7QUFFRCx5Q0FBeUM7QUFDekMsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE9BQWtDO0lBQ2xFLElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFLENBQUE7SUFDbEUsT0FBTyxFQUFFLElBQUksRUFBRSxzQkFBc0IsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUNsRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR2VuZXJhdGVkIGJ5IGBwbnBtIGdlbmVyYXRlOmJpbmRpbmdzYCBmcm9tIHRoZSBjcmF0ZSdzIHBsdWdpbnM7IGRvIG5vdCBlZGl0LlxuXG5pbXBvcnQgdHlwZSB7IFBsdWdpbiB9IGZyb20gXCIuLi9tb2RlbHMvcGx1Z2luLnRzXCJcblxuLyoqIGBtZC5wYXJzZWA6IE1hcmtkb3duIGludG8gbWRhc3QuICovXG5leHBvcnQgdHlwZSBQYXJzZU9wdGlvbnMgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuXG4vKiogYG1kLmRpcmVjdGl2ZWA6IGdlbmVyaWMgZGlyZWN0aXZlcywgYDphYCwgYDo6YmAgYW5kIGA6OjpjYCwgcmVhZCBieSBgbWQucGFyc2VgIGFuZCB3cml0dGVuIGJ5IGBtZC5zdHJpbmdpZnlgOyBvcHRpb25zIG5hbWVkIGFzIG1kYXN0LXV0aWwtZGlyZWN0aXZlJ3Mgc2VyaWFsaXplciBuYW1lcyB0aGVtLiAqL1xuZXhwb3J0IGludGVyZmFjZSBEaXJlY3RpdmVPcHRpb25zIHtcbiAgLyoqIFdyaXRlIGFuIGVtcHR5IGF0dHJpYnV0ZSBhcyBpdHMgbmFtZSBhbG9uZSwgYHthfWAsIHJhdGhlciB0aGFuIGB7YT1cIlwifWAuIEBkZWZhdWx0IHRydWUgKi9cbiAgY29sbGFwc2VFbXB0eUF0dHJpYnV0ZXM/OiBib29sZWFuXG4gIC8qKiBXcml0ZSBgaWRgIGFuZCBgY2xhc3NgIGFzIGAjYWAgYW5kIGAuYmAgd2hlcmUgdGhleSBjYW4gYmUuIEBkZWZhdWx0IHRydWUgKi9cbiAgcHJlZmVyU2hvcnRjdXQ/OiBib29sZWFuXG4gIC8qKiBMZWF2ZSBhdHRyaWJ1dGUgdmFsdWVzIHVucXVvdGVkIHdoZXJlIHRoZXkgY2FuIGJlLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBwcmVmZXJVbnF1b3RlZD86IGJvb2xlYW5cbiAgLyoqIFRoZSBxdW90ZSBvZiBhdHRyaWJ1dGUgdmFsdWVzOiBgXCJgIG9yIGAnYDsgYG1kLnN0cmluZ2lmeWAncyBgcXVvdGVgIHdoZW4gdW5zZXQuICovXG4gIHF1b3RlPzogc3RyaW5nIHwgbnVsbFxuICAvKiogVXNlIHRoZSBvdGhlciBxdW90ZSB3aGVuIHRoZSBwcmVmZXJyZWQgb25lIG9jY3VycyBtb3JlIG9mdGVuIGluIGEgdmFsdWUuIEBkZWZhdWx0IGZhbHNlICovXG4gIHF1b3RlU21hcnQ/OiBib29sZWFuXG59XG5cbi8qKiBgbWQuZ2ZtYDogR2l0SHViIEZsYXZvcmVkIE1hcmtkb3duJ3Mgc3ludGF4LCByZWFkIGJ5IGBtZC5wYXJzZWAgYW5kIHdyaXR0ZW4gYnkgYG1kLnN0cmluZ2lmeWA7IG9wdGlvbnMgbmFtZWQgYXMgcmVtYXJrLWdmbSBuYW1lcyB0aGVtLiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZm1PcHRpb25zIHtcbiAgLyoqIExldCBvbmUgdGlsZGUsIGB+YX5gLCBmb3JtIHN0cmlrZXRocm91Z2gsIGFzIHdlbGwgYXMgdHdvLiBAZGVmYXVsdCB0cnVlICovXG4gIHNpbmdsZVRpbGRlPzogYm9vbGVhblxuICAvKiogUGFkIHRhYmxlIGNlbGxzIHdpdGggYSBzcGFjZSBvbiBlYWNoIHNpZGUgd2hlbiB3cml0aW5nIE1hcmtkb3duLiBAZGVmYXVsdCB0cnVlICovXG4gIHRhYmxlQ2VsbFBhZGRpbmc/OiBib29sZWFuXG4gIC8qKiBMaW5lIHVwIHRhYmxlIHBpcGVzIHdoZW4gd3JpdGluZyBNYXJrZG93bi4gQGRlZmF1bHQgdHJ1ZSAqL1xuICB0YWJsZVBpcGVBbGlnbj86IGJvb2xlYW5cbiAgLyoqIFdyaXRlIGEgZm9vdG5vdGUgZGVmaW5pdGlvbidzIGZpcnN0IGxpbmUgYmxhbmsgd2hlbiBpdCBob2xkcyBmbG93IGNvbnRlbnQuIEBkZWZhdWx0IGZhbHNlICovXG4gIGZpcnN0TGluZUJsYW5rPzogYm9vbGVhblxufVxuXG4vKiogYG1kLm1hdGhgOiBtYXRoIHN5bnRheCwgYCQkYCBibG9ja3MgYW5kIGAkYCB0ZXh0LCByZWFkIGJ5IGBtZC5wYXJzZWAgYW5kIHdyaXR0ZW4gYnkgYG1kLnN0cmluZ2lmeWA7IG9wdGlvbnMgbmFtZWQgYXMgcmVtYXJrLW1hdGggbmFtZXMgdGhlbS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWF0aE9wdGlvbnMge1xuICAvKiogTGV0IG9uZSBkb2xsYXIsIGAkYSRgLCBmb3JtIG1hdGggaW4gdGV4dCwgYXMgd2VsbCBhcyB0d28uIEBkZWZhdWx0IHRydWUgKi9cbiAgc2luZ2xlRG9sbGFyVGV4dE1hdGg/OiBib29sZWFuXG59XG5cbi8qKiBgbWQubWR4YDogTURYIHN5bnRheCwgSlNYLCBleHByZXNzaW9ucyBhbmQgRVNNLCByZWFkIGJ5IGBtZC5wYXJzZWAgYW5kIHdyaXR0ZW4gYnkgYG1kLnN0cmluZ2lmeWA7IGl0IHR1cm5zIG9mZiBpbmRlbnRlZCBjb2RlLCBhdXRvbGlua3MgYW5kIHJhdyBIVE1MOyBvcHRpb25zIG5hbWVkIGFzIHJlbWFyay1tZHggYW5kIG1kYXN0LXV0aWwtbWR4LWpzeCdzIHNlcmlhbGl6ZXIgbmFtZSB0aGVtLiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZHhPcHRpb25zIHtcbiAgLyoqIFRoZSBxdW90ZSBvZiBKU1ggYXR0cmlidXRlIHZhbHVlczogYFwiYCAod2hlbiB1bnNldCkgb3IgYCdgLiAqL1xuICBxdW90ZT86IHN0cmluZyB8IG51bGxcbiAgLyoqIFVzZSB0aGUgb3RoZXIgcXVvdGUgd2hlbiB0aGUgcHJlZmVycmVkIG9uZSBvY2N1cnMgbW9yZSBvZnRlbiBpbiBhIHZhbHVlLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBxdW90ZVNtYXJ0PzogYm9vbGVhblxuICAvKiogV3JpdGUgc2VsZi1jbG9zaW5nIHRhZ3Mgd2l0aG91dCBhIHNwYWNlIGJlZm9yZSB0aGUgc2xhc2gsIGA8YS8+YC4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgdGlnaHRTZWxmQ2xvc2luZz86IGJvb2xlYW5cbiAgLyoqIFRoZSB3aWR0aCBwYXN0IHdoaWNoIGEgZmxvdyBlbGVtZW50J3MgYXR0cmlidXRlcyBnbyBvbiBsaW5lcyBvZiB0aGVpciBvd24uICovXG4gIHByaW50V2lkdGg/OiBudW1iZXIgfCBudWxsXG59XG5cbi8qKiBUaGUga2luZHMgb2YgbWF0dGVyIHRvIHJlY29nbml6ZSwgYXMgcmVtYXJrLWZyb250bWF0dGVyIHRha2VzIHRoZW0gKGEgcHJlc2V0LCBhIG1hdHRlciwgb3IgYSBsaXN0IG9mIHRoZW07IGB5YW1sYCB3aGVuIHVuc2V0KSwgb3IgdGV4dGxhbmUncyBvcHRpb25zIG9iamVjdC4gKi9cbmV4cG9ydCB0eXBlIEZyb250bWF0dGVyT3B0aW9ucyA9IFwieWFtbFwiIHwgXCJ0b21sXCIgfCBNYXR0ZXIgfCAoXCJ5YW1sXCIgfCBcInRvbWxcIiB8IE1hdHRlcilbXSB8IEZyb250bWF0dGVyU2V0dGluZ3NcblxuLyoqIE9uZSBraW5kIG9mIGZyb250bWF0dGVyOiB0aGUgbm9kZSBgdHlwZWAgaXQgYmVjb21lcyBhbmQgaXRzIGZlbmNlcywgYSBgbWFya2VyYCByZXBlYXRlZCB0aHJlZSB0aW1lcyBvciBhIHdob2xlIGBmZW5jZWAuICovXG5leHBvcnQgaW50ZXJmYWNlIE1hdHRlciB7XG4gIHR5cGU6IHN0cmluZ1xuICBtYXJrZXI/OiBGZW5jZVxuICBmZW5jZT86IEZlbmNlXG4gIGFueXdoZXJlPzogYm9vbGVhblxufVxuXG4vKiogRGlmZmVyZW50IG9wZW5pbmcgYW5kIGNsb3NpbmcgZmVuY2VzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBGZW5jZVBhaXIge1xuICBvcGVuOiBzdHJpbmdcbiAgY2xvc2U6IHN0cmluZ1xufVxuXG4vKiogQSBmZW5jZSwgb3IgaXRzIG9wZW5pbmcgYW5kIGNsb3Npbmcgb25lcy4gKi9cbmV4cG9ydCB0eXBlIEZlbmNlID0gc3RyaW5nIHwgRmVuY2VQYWlyXG5cbi8qKiB0ZXh0bGFuZSdzIG9wdGlvbnM6IHRoZSBtYXR0ZXJzLCBhbmQgd2hhdCB0byBkbyB3aXRoIFlBTUwgZnJvbnRtYXR0ZXIuICovXG5leHBvcnQgaW50ZXJmYWNlIEZyb250bWF0dGVyU2V0dGluZ3Mge1xuICAvKiogVGhlIGtpbmRzIG9mIG1hdHRlciB0byByZWNvZ25pemUsIGFzIHJlbWFyay1mcm9udG1hdHRlciB0YWtlcyB0aGVtOyBgeWFtbGAgd2hlbiB1bnNldC4gKi9cbiAgbWF0dGVycz86IFwieWFtbFwiIHwgXCJ0b21sXCIgfCBNYXR0ZXIgfCAoXCJ5YW1sXCIgfCBcInRvbWxcIiB8IE1hdHRlcilbXVxuICAvKiogUGFyc2UgdGhlIFlBTUwgZnJvbnRtYXR0ZXIgYSBkb2N1bWVudCBzdGFydHMgd2l0aCBpbnRvIGBmaWxlLmRhdGEubWF0dGVyYCwgYHt9YCB3aGVuIHRoZXJlIGlzIG5vbmUsIGFzIHZmaWxlLW1hdHRlciBkb2VzLiAqL1xuICBkYXRhPzogYm9vbGVhblxuICAvKiogUmVtb3ZlIHRoZSBZQU1MIGZyb250bWF0dGVyIGEgZG9jdW1lbnQgc3RhcnRzIHdpdGggZnJvbSB0aGUgdHJlZS4gKi9cbiAgc3RyaXA/OiBib29sZWFuXG59XG5cbi8qKiBgbWQuY29tcG9uZW50YDogZGlyZWN0aXZlcywgR2l0SHViIGFsZXJ0cyBhbmQgb3RoZXIgbm9kZXMgaW50byBNRFggSlNYIGVsZW1lbnRzLCB0aGUgY29tcG9uZW50cyBhbiBNRFggcnVudGltZSByZW5kZXJzLCBieSBkZWNsYXJhdGl2ZSBydWxlcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50T3B0aW9ucyB7XG4gIC8qKiBSdWxlcyBmb3IgZGlyZWN0aXZlczsgdGhlIGZpcnN0IHRoYXQgbWF0Y2hlcyBhIGRpcmVjdGl2ZSBjb252ZXJ0cyBpdC4gKi9cbiAgZGlyZWN0aXZlcz86IERpcmVjdGl2ZVJ1bGVbXVxuICAvKiogR2l0SHViIGFsZXJ0cywgYD4gWyFOT1RFXWAsIGludG8gYSBjb21wb25lbnQuICovXG4gIGFsZXJ0cz86IEFsZXJ0UnVsZSB8IG51bGxcbiAgLyoqIE5vZGUgdHlwZXMsIHN1Y2ggYXMgYGRlZkxpc3RgLCBpbnRvIGNvbXBvbmVudHMga2VlcGluZyB0aGVpciBjaGlsZHJlbi4gQGRlZmF1bHQge30gKi9cbiAgbm9kZXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG4gIC8qKiBXaGF0IGJlY29tZXMgb2YgYSBkaXJlY3RpdmUgbm8gcnVsZSBjb252ZXJ0cy4gKi9cbiAgdW5rbm93bkRpcmVjdGl2ZXM/OiBVbmtub3duRGlyZWN0aXZlc1xuICAvKiogUnVsZXMgZm9yIGZlbmNlZCBjb2RlOyB0aGUgZmlyc3QgdGhhdCBtYXRjaGVzIGEgYmxvY2sgYXBwbGllcy4gKi9cbiAgY29kZXM/OiBDb2RlUnVsZVtdXG59XG5cbi8qKiBIb3cgYG1kLmNvbXBvbmVudGAgdHVybnMgbWF0Y2hpbmcgZGlyZWN0aXZlcyBpbnRvIG9uZSBjb21wb25lbnQuICovXG5leHBvcnQgaW50ZXJmYWNlIERpcmVjdGl2ZVJ1bGUge1xuICAvKiogVGhlIGRpcmVjdGl2ZSdzIG5hbWUsIG9yIHNldmVyYWwuICovXG4gIG5hbWU6IE5hbWVzXG4gIC8qKiBUaGUga2luZCBvZiBkaXJlY3RpdmU6IGB0ZXh0YCwgYGxlYWZgIG9yIGBjb250YWluZXJgOyBhbnkgd2hlbiBsZWZ0IG91dC4gKi9cbiAga2luZD86IERpcmVjdGl2ZUtpbmQgfCBudWxsXG4gIC8qKiBBdHRyaWJ1dGUgdmFsdWVzIHRoZSBkaXJlY3RpdmUgbXVzdCBoYXZlLiBAZGVmYXVsdCB7fSAqL1xuICB3aGVyZT86IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbiAgLyoqIFRoZSBjb21wb25lbnQ6IGEgdGV4dCBlbGVtZW50IGZvciBhIHRleHQgZGlyZWN0aXZlLCBlbHNlIGEgZmxvdyBlbGVtZW50LiAqL1xuICBjb21wb25lbnQ6IHN0cmluZ1xuICAvKiogVGhlIGF0dHJpYnV0ZSB0aGF0IGdldHMgdGhlIGRpcmVjdGl2ZSdzIG5hbWUuICovXG4gIG5hbWVBcz86IHN0cmluZyB8IG51bGxcbiAgLyoqIFRoZSBhdHRyaWJ1dGUgdGhhdCBnZXRzIHRoZSBsYWJlbCdzIHRleHQ6IGEgY29udGFpbmVyJ3MgbGFiZWwgcGFyYWdyYXBoIG9yIGEgdGV4dCBvciBsZWFmIGRpcmVjdGl2ZSdzIGNvbnRlbnQsIHdoaWNoIGlzIHRoZW4gZHJvcHBlZC4gKi9cbiAgbGFiZWxBcz86IHN0cmluZyB8IG51bGxcbiAgLyoqIFRoZSBsYWJlbCdzIHRleHQgd2hlbiB0aGVyZSBpcyBub25lLiAqL1xuICBsYWJlbERlZmF1bHQ/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBUaGUgYXR0cmlidXRlcyB0byBrZWVwLCBpbiBvcmRlcjsgZXZlcnkgb25lLCBhcyB3cml0dGVuLCB3aGVuIGxlZnQgb3V0LiAqL1xuICBhdHRyaWJ1dGVzPzogQXR0cmlidXRlUnVsZVtdIHwgbnVsbFxuICAvKiogQXR0cmlidXRlcyB3aXRob3V0IHdoaWNoIHRoZSBkaXJlY3RpdmUgaXMgbGVmdCB0byBgdW5rbm93bkRpcmVjdGl2ZXNgLiBAZGVmYXVsdCBbXSAqL1xuICByZXF1aXJlZD86IHN0cmluZ1tdXG4gIC8qKiBXcmFwIHJ1bnMgb2YgYWRqYWNlbnQgc2libGluZ3MgdGhpcyBydWxlIGNvbnZlcnRlZCBpbiBhbm90aGVyIGNvbXBvbmVudC4gKi9cbiAgZ3JvdXA/OiBHcm91cFJ1bGUgfCBudWxsXG4gIC8qKiBUaGUgYXR0cmlidXRlIHRoYXQgZ2V0cyB0aGUgbGlzdHMgb2YgYSBjb250YWluZXIgZGlyZWN0aXZlIGFzIGEgZmlsZSB0cmVlLCBKU09OIGl0ZW1zIGB7bmFtZSwgdHlwZSwgY29tbWVudD8sIGhpZ2hsaWdodGVkPywgY2hpbGRyZW4/fWA7IHRoZSBsaXN0cyBsZWF2ZSBpdHMgY29udGVudC4gKi9cbiAgdHJlZUFzPzogc3RyaW5nIHwgbnVsbFxufVxuXG4vKiogT25lIG5hbWUgb3Igc2V2ZXJhbC4gKi9cbmV4cG9ydCB0eXBlIE5hbWVzID0gc3RyaW5nIHwgc3RyaW5nW11cblxuLyoqIEEgZGlyZWN0aXZlJ3Mga2luZCwgYnkgaG93IG1hbnkgY29sb25zIG9wZW4gaXQuICovXG5leHBvcnQgdHlwZSBEaXJlY3RpdmVLaW5kID0gXCJ0ZXh0XCIgfCBcImxlYWZcIiB8IFwiY29udGFpbmVyXCJcblxuLyoqIEFuIGF0dHJpYnV0ZSB0byBrZWVwOiBpdHMgbmFtZSwgb3IgaXRzIG5hbWUgd2l0aCB3aGF0IHRvIGNhbGwgaXQgYW5kIGEgZGVmYXVsdC4gKi9cbmV4cG9ydCB0eXBlIEF0dHJpYnV0ZVJ1bGUgPSBzdHJpbmcgfCB7IG5hbWU6IHN0cmluZzsgcmVuYW1lPzogc3RyaW5nIHwgbnVsbDsgZGVmYXVsdD86IHN0cmluZyB8IG51bGwgfVxuXG4vKiogVGhlIGNvbXBvbmVudCB3cmFwcGluZyBhIHJ1biBvZiBhZGphY2VudCBzaWJsaW5ncyBvbmUgcnVsZSBjb252ZXJ0ZWQuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VwUnVsZSB7XG4gIC8qKiBUaGUgd3JhcHBpbmcgY29tcG9uZW50LiAqL1xuICBjb21wb25lbnQ6IHN0cmluZ1xuICAvKiogVGhlIHNob3J0ZXN0IHJ1biB3cmFwcGVkOyAyIHdoZW4gbGVmdCBvdXQuICovXG4gIG1pbj86IG51bWJlciB8IG51bGxcbiAgLyoqIEF0dHJpYnV0ZXMgdGhlIHdyYXBwZXIgY29waWVzIGZyb20gdGhlIHJ1bidzIGZpcnN0IGVsZW1lbnQuIEBkZWZhdWx0IFtdICovXG4gIGluaGVyaXQ/OiBzdHJpbmdbXVxufVxuXG4vKiogSG93IGBtZC5jb21wb25lbnRgIHR1cm5zIEdpdEh1YiBhbGVydHMsIGEgYmxvY2sgcXVvdGUgb3BlbmluZyB3aXRoIGBbIVRZUEVdYCwgaW50byBhIGNvbXBvbmVudC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWxlcnRSdWxlIHtcbiAgLyoqIFRoZSBjb21wb25lbnQgYW4gYWxlcnQgYmVjb21lcy4gKi9cbiAgY29tcG9uZW50OiBzdHJpbmdcbiAgLyoqIFRoZSBhdHRyaWJ1dGUgdGhhdCBnZXRzIHRoZSBhbGVydCdzIHR5cGUuICovXG4gIHR5cGVBczogc3RyaW5nXG4gIC8qKiBFYWNoIGFsZXJ0IHR5cGUsIGFzIHdyaXR0ZW4sIHRvIHRoZSB2YWx1ZSBvZiBgdHlwZUFzYDsgb3RoZXIgdHlwZXMgc3RheSBibG9jayBxdW90ZXMuICovXG4gIHR5cGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG59XG5cbi8qKiBXaGF0IGBtZC5jb21wb25lbnRgIGRvZXMgd2l0aCBhIGRpcmVjdGl2ZSBubyBydWxlIGNvbnZlcnRzLiAqL1xuZXhwb3J0IHR5cGUgVW5rbm93bkRpcmVjdGl2ZXMgPSBcImtlZXBcIiB8IFwic291cmNlXCJcblxuLyoqIEhvdyBgbWQuY29tcG9uZW50YCB0dXJucyBtYXRjaGluZyBjb2RlIGJsb2NrcyBpbnRvIGEgY29tcG9uZW50LCBvciBncm91cHMgdGhlbS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZVJ1bGUge1xuICAvKiogVGhlIGJsb2NrJ3MgbGFuZ3VhZ2UsIG9yIHNldmVyYWw7IGFueSB3aGVuIGxlZnQgb3V0LiAqL1xuICBsYW5nPzogTmFtZXMgfCBudWxsXG4gIC8qKiBBIGBrZXk9XCJ2YWx1ZVwiYCB0aGUgYmxvY2sncyBtZXRhIG11c3QgaG9sZC4gKi9cbiAgbWV0YT86IHN0cmluZyB8IG51bGxcbiAgLyoqIFRoZSBjb21wb25lbnQgdGhlIGJsb2NrIGJlY29tZXM7IGxlZnQgb3V0LCB0aGUgYmxvY2sgc3RheXMgY29kZSBhbmQgb25seSBncm91cHMuICovXG4gIGNvbXBvbmVudD86IHN0cmluZyB8IG51bGxcbiAgLyoqIFRoZSBhdHRyaWJ1dGUgdGhhdCBnZXRzIHRoZSBjb2RlOyBsZWZ0IG91dCwgdGhlIGNvZGUgaXMgdGhlIGNvbXBvbmVudCdzIHRleHQuICovXG4gIHZhbHVlQXM/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBNZXRhIGBrZXk9XCJ2YWx1ZVwiYCBwYWlycyB0byBrZWVwIGFzIGF0dHJpYnV0ZXMsIGluIG9yZGVyLiAqL1xuICBhdHRyaWJ1dGVzPzogQXR0cmlidXRlUnVsZVtdXG4gIC8qKiBXcmFwIHJ1bnMgb2YgYWRqYWNlbnQgYmxvY2tzIHRoaXMgcnVsZSBtYXRjaGVkIGluIGFub3RoZXIgY29tcG9uZW50LiAqL1xuICBncm91cD86IENvZGVHcm91cFJ1bGUgfCBudWxsXG59XG5cbi8qKiBUaGUgY29tcG9uZW50IHdyYXBwaW5nIGEgcnVuIG9mIGFkamFjZW50IGNvZGUgYmxvY2tzIG9uZSBydWxlIG1hdGNoZWQ7IHRoZSBtZXRhIGtleXMgaXQgcmVhZHMgYXJlIHRha2VuIG91dCBvZiBlYWNoIGJsb2NrJ3MgbWV0YS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZUdyb3VwUnVsZSB7XG4gIC8qKiBUaGUgd3JhcHBpbmcgY29tcG9uZW50LiAqL1xuICBjb21wb25lbnQ6IHN0cmluZ1xuICAvKiogVGhlIHNob3J0ZXN0IHJ1biB3cmFwcGVkOyAyIHdoZW4gbGVmdCBvdXQuICovXG4gIG1pbj86IG51bWJlciB8IG51bGxcbiAgLyoqIFRoZSBhdHRyaWJ1dGUgdGhhdCBnZXRzIHRoZSBydW4ncyB2YWx1ZXMgb2YgdGhlIHJ1bGUncyBgbWV0YWAga2V5LCBhcyBhIEpTT04gbGlzdC4gKi9cbiAgY29sbGVjdD86IHN0cmluZyB8IG51bGxcbiAgLyoqIE1ldGEga2V5cyB0aGUgd3JhcHBlciBjb3BpZXMgZnJvbSB0aGUgcnVuJ3MgZmlyc3QgYmxvY2sgYXMgYXR0cmlidXRlcy4gQGRlZmF1bHQgW10gKi9cbiAgaW5oZXJpdD86IHN0cmluZ1tdXG59XG5cbi8qKiBgbWQucGFja2FnZUNvbW1hbmRgOiBhIGZlbmNlZCBibG9jayBvZiBwYWNrYWdlLW1hbmFnZXIgY29tbWFuZHMsIGl0cyBsYW5ndWFnZSBuYW1pbmcgdGhlIGVjb3N5c3RlbSAoYG5wbWAsIGBwaXBgLCBgY2FyZ29gKSwgaW50byBvbmUgY29tcG9uZW50IHdpdGggdGhlIGNvbW1hbmRzIGNvbnZlcnRlZCBmb3IgZWFjaCBtYW5hZ2VyLCBhcyBgQGRvY3VzYXVydXMvcmVtYXJrLXBsdWdpbi1ucG0yeWFybmAgZG9lcyBmb3IgbnBtLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYWNrYWdlQ29tbWFuZE9wdGlvbnMge1xuICAvKiogVGhlIGNvbXBvbmVudCBhIGJsb2NrIGJlY29tZXM7IG9uZSBzdHJpbmcgYXR0cmlidXRlIHBlciBtYW5hZ2VyLiBAZGVmYXVsdCBcIlBhY2thZ2VUYWJzXCIgKi9cbiAgY29tcG9uZW50Pzogc3RyaW5nXG4gIC8qKiBFYWNoIGVjb3N5c3RlbSdzIG1hbmFnZXJzLCBpbiBhdHRyaWJ1dGUgb3JkZXI7IGFuIGVtcHR5IGxpc3QgbGVhdmVzIGl0cyBibG9ja3MgY29kZS4gKi9cbiAgZWNvc3lzdGVtcz86IEVjb3N5c3RlbXNcbn1cblxuLyoqIFRoZSBtYW5hZ2VycyBgbWQucGFja2FnZUNvbW1hbmRgIGNvbnZlcnRzIGVhY2ggZWNvc3lzdGVtJ3MgY29tbWFuZHMgZm9yLiAqL1xuZXhwb3J0IGludGVyZmFjZSBFY29zeXN0ZW1zIHtcbiAgLyoqIE1hbmFnZXJzIGZvciBgbnBtYCBibG9ja3MsIGNvbnZlcnRlZCBhcyBucG0tdG8teWFybiBjb252ZXJ0czsgbnBtLCBwbnBtLCB5YXJuIGFuZCBidW4gYnkgZGVmYXVsdC4gKi9cbiAgbnBtPzogTnBtTWFuYWdlcltdXG4gIC8qKiBNYW5hZ2VycyBmb3IgYHBpcGAgYmxvY2tzOyBwaXAsIHV2LCBwb2V0cnkgYW5kIHBkbSBieSBkZWZhdWx0LiAqL1xuICBwaXA/OiBQaXBNYW5hZ2VyW11cbiAgLyoqIE1hbmFnZXJzIGZvciBgY2FyZ29gIGJsb2NrczsgY2FyZ28gYW5kIGNhcmdvLWJpbnN0YWxsIGJ5IGRlZmF1bHQuICovXG4gIGNhcmdvPzogQ2FyZ29NYW5hZ2VyW11cbn1cblxuLyoqIEEgSmF2YVNjcmlwdCBwYWNrYWdlIG1hbmFnZXIgYW4gYG5wbWAgY29tbWFuZCBjb252ZXJ0cyB0by4gKi9cbmV4cG9ydCB0eXBlIE5wbU1hbmFnZXIgPSBcIm5wbVwiIHwgXCJwbnBtXCIgfCBcInlhcm5cIiB8IFwiYnVuXCIgfCBcImRlbm9cIiB8IFwibnViXCJcblxuLyoqIEEgUHl0aG9uIHBhY2thZ2UgbWFuYWdlciBhIGBwaXBgIGNvbW1hbmQgY29udmVydHMgdG8uICovXG5leHBvcnQgdHlwZSBQaXBNYW5hZ2VyID0gXCJwaXBcIiB8IFwidXZcIiB8IFwicG9ldHJ5XCIgfCBcInBkbVwiXG5cbi8qKiBBIFJ1c3QgaW5zdGFsbGVyIGEgYGNhcmdvYCBjb21tYW5kIGNvbnZlcnRzIHRvLiAqL1xuZXhwb3J0IHR5cGUgQ2FyZ29NYW5hZ2VyID0gXCJjYXJnb1wiIHwgXCJjYXJnby1iaW5zdGFsbFwiXG5cbi8qKiBgbWQuaGVhZGluZ0lkYDogYHsjaWR9YCBhdCB0aGUgZW5kIG9mIGEgaGVhZGluZywgYWZ0ZXIgYSBzcGFjZSwgYXMgaXRzIGlkLCBhcyByZW1hcmstaGVhZGluZy1pZCByZWFkcyBpdDsgaGVhZGluZ3Mgd2l0aG91dCBvbmUga2VlcCBub25lLiAqL1xuZXhwb3J0IGludGVyZmFjZSBIZWFkaW5nSWRPcHRpb25zIHtcbiAgLyoqIFJlYWQgYSB3aG9sZSBhdHRyaWJ1dGUgbGlzdCwgYHsjaWQgLmNsYXNzIGtleT12YWx1ZSBrZXk9XCJ2IHdcIn1gLCBhcyBkaXJlY3RpdmVzIHdyaXRlIHRoZWlyczogY2xhc3NlcyBiZWNvbWUgYGNsYXNzTmFtZWAgYW5kIG90aGVyIGtleXMgcHJvcGVydGllcy4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgYXR0cmlidXRlcz86IGJvb2xlYW5cbiAgLyoqIExpdGVyYWwgc3VmZml4ZXMsIHN1Y2ggYXMgYFtzdGVwXWAsIHN0cmlwcGVkIGZyb20gYSBoZWFkaW5nJ3MgZW5kIGZvciB0aGUgYXR0cmlidXRlcyBlYWNoIG5hbWVzLCBhIHZhbHVlIG9yIGB0cnVlYCBmb3IgYSBiYXJlIG9uZTogYHtcIltzdGVwXVwiOiB7XCJkYXRhLXN0ZXBcIjogdHJ1ZX19YC4gKi9cbiAgbWFya2Vycz86IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIE1hcmtlclZhbHVlPj5cbn1cblxuLyoqIEFuIGF0dHJpYnV0ZSBhIGhlYWRpbmcgbWFya2VyIHNldHM6IGl0cyB2YWx1ZSwgb3IgYHRydWVgIGZvciB0aGUgYmFyZSBhdHRyaWJ1dGUuICovXG5leHBvcnQgdHlwZSBNYXJrZXJWYWx1ZSA9IGJvb2xlYW4gfCBzdHJpbmdcblxuLyoqIGBtZC5wYXRoUmV3cml0ZWA6IHRoZSBVUkxzIG9mIGltYWdlcywgbGlua3MgYW5kIGRlZmluaXRpb25zIGFzIGEgc2l0ZSBzZXJ2ZXMgdGhlbTogcmVsYXRpdmUgb25lcyByZXNvbHZlZCBhZ2FpbnN0IHRoZSBmaWxlJ3MgcGF0aCBhbmQgbWFkZSByb290LXJlbGF0aXZlLCBldmVyeSByb290LXJlbGF0aXZlIG9uZSB1bmRlciBgYmFzZWAsIGFuZCBsaW5rcyB0byBNYXJrZG93biBmaWxlcyB0dXJuZWQgaW50byBwYWdlIFVSTHMuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhdGhSZXdyaXRlT3B0aW9ucyB7XG4gIC8qKiBUaGUgZGlyZWN0b3J5IFVSTHMgY291bnQgZnJvbSwgYXMgdGhlIGZpbGUncyBwYXRoIHNwZWxscyBpdDsgdGhlIHBhdGgncyBvd24gc3RhcnRpbmcgcG9pbnQgd2hlbiBsZWZ0IG91dC4gKi9cbiAgcm9vdD86IHN0cmluZyB8IG51bGxcbiAgLyoqIFRoZSBVUkwgdGhlIHNpdGUgaXMgc2VydmVkIGF0LCBzdWNoIGFzIGAvZG9jc2AsIHB1dCBiZWZvcmUgZXZlcnkgcm9vdC1yZWxhdGl2ZSBVUkwgb25jZS4gKi9cbiAgYmFzZT86IHN0cmluZyB8IG51bGxcbiAgLyoqIFRoZSBub2RlcyB3aG9zZSBVUkxzIGFyZSByZXdyaXR0ZW47IGltYWdlcywgbGlua3MgYW5kIGRlZmluaXRpb25zIHdoZW4gbGVmdCBvdXQuICovXG4gIG5vZGVzPzogVXJsTm9kZVtdIHwgbnVsbFxuICAvKiogTWFya2Rvd24gZmlsZXMsIHJlbGF0aXZlIHRvIGByb290YCwgdG8gdGhlIFVSTCBvZiB0aGVpciBwYWdlOyBhIGxpbmsgdG8gb25lIG9mIHRoZW0gdGFrZXMgaXQsIGJlZm9yZSBgbWFya2Rvd25MaW5rc2AgYXBwbGllcy4gQGRlZmF1bHQge30gKi9cbiAgcGFnZXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG4gIC8qKiBIb3cgYSBsaW5rIHRvIGEgTWFya2Rvd24gZmlsZSBubyBwYWdlIG5hbWVzIGJlY29tZXMgYSBVUkwuICovXG4gIG1hcmtkb3duTGlua3M/OiBNYXJrZG93bkxpbmtzXG59XG5cbi8qKiBBIG5vZGUgd2l0aCBhIFVSTC4gKi9cbmV4cG9ydCB0eXBlIFVybE5vZGUgPSBcImltYWdlXCIgfCBcImxpbmtcIiB8IFwiZGVmaW5pdGlvblwiXG5cbi8qKiBIb3cgYSBsaW5rIHRvIGEgTWFya2Rvd24gZmlsZSBiZWNvbWVzIGEgVVJMLiAqL1xuZXhwb3J0IHR5cGUgTWFya2Rvd25MaW5rcyA9IFwia2VlcFwiIHwgXCJkaXJlY3RvcnlcIiB8IFwiaHRtbFwiXG5cbi8qKiBgbWQuc3RyaXBgOiBtZGFzdCBkb3duIHRvIGl0cyB0ZXh0LCBhcyBzdHJpcC1tYXJrZG93biBkb2VzOiBjb2RlLCBIVE1MLCB0YWJsZXMgYW5kIHRoZSBsaWtlIGRyb3BwZWQsIGhlYWRpbmdzIG1hZGUgcGFyYWdyYXBocywgZm9ybWF0dGluZyB1bndyYXBwZWQuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0cmlwT3B0aW9ucyB7XG4gIC8qKiBOb2RlIHR5cGVzIHRvIGxlYXZlIGFzIHRoZXkgYXJlLCBzdWNoIGFzIGBpbmxpbmVDb2RlYC4gQGRlZmF1bHQgW10gKi9cbiAga2VlcD86IHN0cmluZ1tdXG4gIC8qKiBOb2RlIHR5cGVzIHRvIGRyb3AsIGJlc2lkZXMgdGhvc2Ugc3RyaXAtbWFya2Rvd24gZHJvcHMuIEBkZWZhdWx0IFtdICovXG4gIHJlbW92ZT86IHN0cmluZ1tdXG59XG5cbi8qKiBgbWQudG9jYDogYSB0YWJsZSBvZiBjb250ZW50cyB1bmRlciB0aGUgZmlyc3QgaGVhZGluZyBtYXRjaGluZyBgaGVhZGluZ2AsIHJlcGxhY2luZyB3aGF0IHNhdCBiZXR3ZWVuIGl0IGFuZCB0aGUgbmV4dCBoZWFkaW5nIGFzIGRlZXAgb3Igc2hhbGxvd2VyLCBhcyByZW1hcmstdG9jIG1ha2VzIGl0LiAqL1xuZXhwb3J0IGludGVyZmFjZSBUb2NPcHRpb25zIHtcbiAgLyoqIFRoZSBoZWFkaW5nIHRvIHB1dCB0aGUgdGFibGUgdW5kZXIsIGFzIEphdmFTY3JpcHQgcmVndWxhciBleHByZXNzaW9uIHNvdXJjZSBtYXRjaGVkIGFnYWluc3QgaXRzIHdob2xlIHRleHQsIGNhc2UtaW5zZW5zaXRpdmVseTsgYCh0YWJsZVsgLV1vZlsgLV0pP2NvbnRlbnRzP3x0b2NgIHdoZW4gdW5zZXQuICovXG4gIGhlYWRpbmc/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBUaGUgZGVlcGVzdCBoZWFkaW5nIHJhbmsgdG8gbGlzdCwgMSB0byA2LiAqL1xuICBtYXhEZXB0aD86IG51bWJlciB8IG51bGxcbiAgLyoqIFRoZSBzaGFsbG93ZXN0IGhlYWRpbmcgcmFuayB0byBsaXN0LCAxIHRvIDYuICovXG4gIG1pbkRlcHRoPzogbnVtYmVyIHwgbnVsbFxuICAvKiogSGVhZGluZ3MgdG8gbGVhdmUgb3V0LCBhcyBKYXZhU2NyaXB0IHJlZ3VsYXIgZXhwcmVzc2lvbiBzb3VyY2UgbWF0Y2hlZCBhZ2FpbnN0IHRoZWlyIHdob2xlIHRleHQsIGNhc2UtaW5zZW5zaXRpdmVseS4gKi9cbiAgc2tpcD86IHN0cmluZyB8IG51bGxcbiAgLyoqIEtlZXAgdGhlIGxpc3QgY29tcGFjdCwgd2l0aG91dCBibGFuayBsaW5lcyBiZXR3ZWVuIGl0ZW1zOyBgdHJ1ZWAgd2hlbiB1bnNldC4gKi9cbiAgdGlnaHQ/OiBib29sZWFuIHwgbnVsbFxuICAvKiogTnVtYmVyIHRoZSBsaXN0IGluc3RlYWQgb2YgYnVsbGV0aW5nIGl0LiAqL1xuICBvcmRlcmVkPzogYm9vbGVhbiB8IG51bGxcbiAgLyoqIFdoYXQgZWFjaCBsaW5rJ3MgZnJhZ21lbnQgc3RhcnRzIHdpdGgsIHN1Y2ggYXMgYHVzZXItY29udGVudC1gLiAqL1xuICBwcmVmaXg/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBUaGUgcGFyZW50cyB3aG9zZSBoZWFkaW5ncyBhcmUgbGlzdGVkLCBhcyBhIHVuaXN0LXV0aWwtaXMgdGVzdDogYSBub2RlIHR5cGUsIGFuIG9iamVjdCBvZiBmaWVsZHMgYSBwYXJlbnQgbXVzdCBlcXVhbCwgb3IgYSBsaXN0IG9mIHRoZXNlOyBvbmx5IHRoZSByb290IHdoZW4gdW5zZXQuICovXG4gIHBhcmVudHM/OiBQYXJlbnRUZXN0IHwgbnVsbFxufVxuXG4vKiogQSB1bmlzdC11dGlsLWlzIHRlc3Qgb2YgYSBub2RlLCB3cml0dGVuIGFzIEpTT046IG9uZSBjaGVjaywgb3IgYSBsaXN0IGFueSBvZiB3aGljaCBwYXNzZXMuICovXG5leHBvcnQgdHlwZSBQYXJlbnRUZXN0ID0gUGFyZW50Q2hlY2sgfCBQYXJlbnRDaGVja1tdXG5cbi8qKiBPbmUgdW5pc3QtdXRpbC1pcyBjaGVjazogYSBub2RlIHR5cGUsIG9yIGZpZWxkcyBhIG5vZGUgbXVzdCBlcXVhbC4gKi9cbmV4cG9ydCB0eXBlIFBhcmVudENoZWNrID0gc3RyaW5nIHwgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cblxuLyoqIGBtZC5zdHJpbmdpZnlgOiBtZGFzdCBpbnRvIE1hcmtkb3duOyBvcHRpb25zIG5hbWVkIGFzIG1kYXN0LXV0aWwtdG8tbWFya2Rvd24gbmFtZXMgdGhlbS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RyaW5naWZ5T3B0aW9ucyB7XG4gIC8qKiBUaGUgbWFya2VyIG9mIHVub3JkZXJlZCBsaXN0IGl0ZW1zOiBgKmAsIGArYCBvciBgLWAuICovXG4gIGJ1bGxldD86IHN0cmluZyB8IG51bGxcbiAgLyoqIFRoZSBtYXJrZXIgb2Ygb3JkZXJlZCBsaXN0IGl0ZW1zOiBgLmAgb3IgYClgLiAqL1xuICBidWxsZXRPcmRlcmVkPzogc3RyaW5nIHwgbnVsbFxuICAvKiogVGhlIG1hcmtlciBvZiBhIGxpc3QgcmlnaHQgYWZ0ZXIgYSBsaXN0IHdpdGggYGJ1bGxldGAuICovXG4gIGJ1bGxldE90aGVyPzogc3RyaW5nIHwgbnVsbFxuICAvKiogQ2xvc2UgQVRYIGhlYWRpbmdzIHdpdGggYXMgbWFueSBgI2AgYXMgdGhleSBvcGVuIHdpdGguIEBkZWZhdWx0IGZhbHNlICovXG4gIGNsb3NlQXR4PzogYm9vbGVhblxuICAvKiogVGhlIG1hcmtlciBvZiBlbXBoYXNpczogYCpgIG9yIGBfYC4gKi9cbiAgZW1waGFzaXM/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBUaGUgbWFya2VyIG9mIGZlbmNlZCBjb2RlOiBgYCBgIGBgIG9yIGB+YC4gKi9cbiAgZmVuY2U/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBGZW5jZSBjb2RlOyBgZmFsc2VgIGluZGVudHMgaXQgd2hlcmUgaXQgY2FuLiBAZGVmYXVsdCB0cnVlICovXG4gIGZlbmNlcz86IGJvb2xlYW5cbiAgLyoqIE51bWJlciBvcmRlcmVkIGxpc3QgaXRlbXMgdXAgZnJvbSBgc3RhcnRgLiBAZGVmYXVsdCB0cnVlICovXG4gIGluY3JlbWVudExpc3RNYXJrZXI/OiBib29sZWFuXG4gIC8qKiBIb3cgbGlzdCBpdGVtIGNvbnRlbnQgaXMgaW5kZW50ZWQ6IGBvbmVgLCBgdGFiYCBvciBgbWl4ZWRgLiAqL1xuICBsaXN0SXRlbUluZGVudD86IHN0cmluZyB8IG51bGxcbiAgLyoqIFRoZSBtYXJrZXIgb2YgdGl0bGVzOiBgXCJgIG9yIGAnYC4gKi9cbiAgcXVvdGU/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBXcml0ZSBsaW5rcyBhcyByZXNvdXJjZXMgZXZlbiB3aGVyZSBhbiBhdXRvbGluayB3b3VsZCBkby4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgcmVzb3VyY2VMaW5rPzogYm9vbGVhblxuICAvKiogVGhlIG1hcmtlciBvZiB0aGVtYXRpYyBicmVha3M6IGAqYCwgYC1gIG9yIGBfYC4gKi9cbiAgcnVsZT86IHN0cmluZyB8IG51bGxcbiAgLyoqIEhvdyBtYW55IG1hcmtlcnMgYSB0aGVtYXRpYyBicmVhayBoYXMsIDMgb3IgbW9yZS4gKi9cbiAgcnVsZVJlcGV0aXRpb24/OiBudW1iZXIgfCBudWxsXG4gIC8qKiBQdXQgc3BhY2VzIGJldHdlZW4gdGhlIG1hcmtlcnMgb2YgYSB0aGVtYXRpYyBicmVhay4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgcnVsZVNwYWNlcz86IGJvb2xlYW5cbiAgLyoqIFdyaXRlIGhlYWRpbmdzIG9mIHJhbmsgMSBhbmQgMiBhcyBzZXRleHQgaGVhZGluZ3MuIEBkZWZhdWx0IGZhbHNlICovXG4gIHNldGV4dD86IGJvb2xlYW5cbiAgLyoqIFRoZSBtYXJrZXIgb2Ygc3Ryb25nOiBgKmAgb3IgYF9gLiAqL1xuICBzdHJvbmc/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBKb2luIGRlZmluaXRpb25zIHdpdGggbm8gYmxhbmsgbGluZSBiZXR3ZWVuIHRoZW0uIEBkZWZhdWx0IGZhbHNlICovXG4gIHRpZ2h0RGVmaW5pdGlvbnM/OiBib29sZWFuXG4gIC8qKiBFeHRyYSBwYXR0ZXJucyBvZiBjaGFyYWN0ZXJzIHRvIGVzY2FwZS4gKi9cbiAgdW5zYWZlPzogVW5zYWZlUGF0dGVybltdXG59XG5cbi8qKiBBIGNoYXJhY3RlciB0byBlc2NhcGUgd2hlcmUgaXQgd291bGQgb3RoZXJ3aXNlIHN0YXJ0IG9yIGVuZCBzeW50YXguICovXG5leHBvcnQgaW50ZXJmYWNlIFVuc2FmZVBhdHRlcm4ge1xuICAvKiogVGhlIGNoYXJhY3RlciwgZXNjYXBlZCBhcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiB3b3VsZCBuZWVkIGl0LiBAZGVmYXVsdCBcIlwiICovXG4gIGNoYXJhY3Rlcj86IHN0cmluZ1xuICAvKiogQSByZWd1bGFyIGV4cHJlc3Npb24gdGhhdCBtdXN0IG1hdGNoIHJpZ2h0IGJlZm9yZSB0aGUgY2hhcmFjdGVyLiAqL1xuICBiZWZvcmU/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBBIHJlZ3VsYXIgZXhwcmVzc2lvbiB0aGF0IG11c3QgbWF0Y2ggcmlnaHQgYWZ0ZXIgdGhlIGNoYXJhY3Rlci4gKi9cbiAgYWZ0ZXI/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBPbmx5IGF0IHRoZSBzdGFydCBvZiBhIGxpbmUsIGFmdGVyIGFueSBpbmRlbnQuIEBkZWZhdWx0IGZhbHNlICovXG4gIGF0QnJlYWs/OiBib29sZWFuXG4gIC8qKiBPbmx5IGluc2lkZSBvbmUgb2YgdGhlc2UgY29uc3RydWN0cy4gKi9cbiAgaW5Db25zdHJ1Y3Q/OiBOYW1lcyB8IG51bGxcbiAgLyoqIE5ldmVyIGluc2lkZSBvbmUgb2YgdGhlc2UgY29uc3RydWN0cy4gKi9cbiAgbm90SW5Db25zdHJ1Y3Q/OiBOYW1lcyB8IG51bGxcbiAgLyoqIE9ubHkgYXQgdGhlIHN0YXJ0IG9mIGEgbm9kZSByaWdodCBhZnRlciBvbmUgb2YgdGhlc2Ugbm9kZSB0eXBlcy4gKi9cbiAgYmVmb3JlTm9kZT86IE5hbWVzIHwgbnVsbFxuICAvKiogT25seSBhdCB0aGUgZW5kIG9mIGEgbm9kZSByaWdodCBiZWZvcmUgb25lIG9mIHRoZXNlIG5vZGUgdHlwZXMuICovXG4gIGFmdGVyTm9kZT86IE5hbWVzIHwgbnVsbFxuICAvKiogUmVhZCBgYmVmb3JlYCBhbmQgYGFmdGVyYCB3aXRoIFVuaWNvZGUgY2xhc3NlcyBzdWNoIGFzIGBcXHB7TH1gLiBAZGVmYXVsdCBmYWxzZSAqL1xuICB1bmljb2RlPzogYm9vbGVhblxufVxuXG4vKiogYG1kLnRvSHRtbGA6IG1kYXN0IGludG8gaGFzdDsgb3B0aW9ucyBuYW1lZCBhcyByZW1hcmstcmVoeXBlIG5hbWVzIHRoZW0uICovXG5leHBvcnQgaW50ZXJmYWNlIFRvSHRtbE9wdGlvbnMge1xuICAvKiogS2VlcCByYXcgSFRNTCBpbiB0aGUgdHJlZSBpbnN0ZWFkIG9mIGRyb3BwaW5nIGl0LiBAZGVmYXVsdCBmYWxzZSAqL1xuICBhbGxvd0Rhbmdlcm91c0h0bWw/OiBib29sZWFuXG4gIC8qKiBXaGF0IGZvb3Rub3RlIGBpZGBzIHN0YXJ0IHdpdGgsIHNvIHRoZXkgY2Fubm90IGNsb2JiZXIgdGhlIHBhZ2UnczsgYHVzZXItY29udGVudC1gIHdoZW4gdW5zZXQuICovXG4gIGNsb2JiZXJQcmVmaXg/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBUaGUgdGV4dCBvZiBlYWNoIGZvb3Rub3RlJ3MgYmFjayByZWZlcmVuY2U7IGDihqlgLCBudW1iZXJlZCBmcm9tIHRoZSBzZWNvbmQsIHdoZW4gdW5zZXQuICovXG4gIGZvb3Rub3RlQmFja0NvbnRlbnQ/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBUaGUgYGFyaWEtbGFiZWxgIG9mIGVhY2ggZm9vdG5vdGUncyBiYWNrIHJlZmVyZW5jZTsgYEJhY2sgdG8gcmVmZXJlbmNlIDFgIGFuZCBzbyBvbiB3aGVuIHVuc2V0LiAqL1xuICBmb290bm90ZUJhY2tMYWJlbD86IHN0cmluZyB8IG51bGxcbiAgLyoqIFRoZSBoZWFkaW5nIG9mIHRoZSBmb290bm90ZXMgc2VjdGlvbjsgYEZvb3Rub3Rlc2Agd2hlbiB1bnNldC4gKi9cbiAgZm9vdG5vdGVMYWJlbD86IHN0cmluZyB8IG51bGxcbiAgLyoqIFRoZSB0YWcgbmFtZSBvZiB0aGUgZm9vdG5vdGVzIHNlY3Rpb24ncyBoZWFkaW5nOyBgaDJgIHdoZW4gdW5zZXQuICovXG4gIGZvb3Rub3RlTGFiZWxUYWdOYW1lPzogc3RyaW5nIHwgbnVsbFxuICAvKiogTm9kZSB0eXBlcyB3aXRob3V0IGEgaGFuZGxlciB0byBjb3B5IGludG8gaGFzdCBhcyB0aGV5IGFyZSwgdGhlaXIgY2hpbGRyZW4gY29udmVydGVkLiBAZGVmYXVsdCBbXSAqL1xuICBwYXNzVGhyb3VnaD86IHN0cmluZ1tdXG4gIC8qKiBBbiBgYXJpYS1sYWJlbGAgZm9yIGVhY2ggdGFzay1saXN0IGNoZWNrYm94LCBzbyBzY3JlZW4gcmVhZGVycyBuYW1lIGl0OyBub25lIHdoZW4gbGVmdCBvdXQsIGFzIHJlbWFyay1yZWh5cGUgd3JpdGVzIG5vbmUuICovXG4gIHRhc2tMaXN0TGFiZWxzPzogVGFza0xpc3RMYWJlbHMgfCBudWxsXG59XG5cbi8qKiBUaGUgbGFiZWxzIG9mIHRhc2stbGlzdCBjaGVja2JveGVzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXNrTGlzdExhYmVscyB7XG4gIC8qKiBUaGUgbGFiZWwgb2YgYSBjaGVja2VkIGJveCwgc3VjaCBhcyBgQ29tcGxldGVkIHRhc2tgLiAqL1xuICBjaGVja2VkOiBzdHJpbmdcbiAgLyoqIFRoZSBsYWJlbCBvZiBhbiB1bmNoZWNrZWQgYm94LCBzdWNoIGFzIGBUYXNrYC4gKi9cbiAgdW5jaGVja2VkOiBzdHJpbmdcbn1cblxuLyoqIGBtZC50b05hdHVyYWxMYW5ndWFnZWA6IG1kYXN0IGludG8gbmxjc3QsIHRva2VuaXplZCBieSB0aGUgcHJvY2Vzc29yJ3MgbmF0dXJhbC1sYW5ndWFnZSBwYXJzZXI7IG9wdGlvbnMgbmFtZWQgYXMgcmVtYXJrLXJldGV4dCBhbmQgbWRhc3QtdXRpbC10by1ubGNzdCBuYW1lIHRoZW0uICovXG5leHBvcnQgaW50ZXJmYWNlIFRvTmF0dXJhbExhbmd1YWdlT3B0aW9ucyB7XG4gIC8qKiBOb2RlIHR5cGVzIHRvIGxlYXZlIG91dCwgYmVzaWRlcyBgdGFibGVgLCBgdGFibGVSb3dgIGFuZCBgdGFibGVDZWxsYC4gQGRlZmF1bHQgW10gKi9cbiAgaWdub3JlPzogc3RyaW5nW11cbiAgLyoqIE5vZGUgdHlwZXMgdG8ga2VlcCBhcyBvbmUgYFNvdXJjZU5vZGVgIG9mIHRoZWlyIHNvdXJjZSB0ZXh0LCBiZXNpZGVzIGBpbmxpbmVDb2RlYC4gQGRlZmF1bHQgW10gKi9cbiAgc291cmNlPzogc3RyaW5nW11cbn1cblxuLyoqIFRoZSBgbWQucGFyc2VgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZShvcHRpb25zPzogUGFyc2VPcHRpb25zKTogUGx1Z2luPFwibWQucGFyc2VcIiwgUGFyc2VPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwibWQucGFyc2VcIiB9XG4gIHJldHVybiB7IG5hbWU6IFwibWQucGFyc2VcIiwgb3B0aW9ucyB9XG59XG5cbi8qKiBUaGUgYG1kLmRpcmVjdGl2ZWAgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRpcmVjdGl2ZShvcHRpb25zPzogRGlyZWN0aXZlT3B0aW9ucyk6IFBsdWdpbjxcIm1kLmRpcmVjdGl2ZVwiLCBEaXJlY3RpdmVPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwibWQuZGlyZWN0aXZlXCIgfVxuICByZXR1cm4geyBuYW1lOiBcIm1kLmRpcmVjdGl2ZVwiLCBvcHRpb25zIH1cbn1cblxuLyoqIFRoZSBgbWQuZ2ZtYCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gZ2ZtKG9wdGlvbnM/OiBHZm1PcHRpb25zKTogUGx1Z2luPFwibWQuZ2ZtXCIsIEdmbU9wdGlvbnM+IHtcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgbmFtZTogXCJtZC5nZm1cIiB9XG4gIHJldHVybiB7IG5hbWU6IFwibWQuZ2ZtXCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBtZC5kZWZpbml0aW9uTGlzdGAgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZmluaXRpb25MaXN0KCk6IFBsdWdpbjxcIm1kLmRlZmluaXRpb25MaXN0XCI+IHtcbiAgcmV0dXJuIHsgbmFtZTogXCJtZC5kZWZpbml0aW9uTGlzdFwiIH1cbn1cblxuLyoqIFRoZSBgbWQubWF0aGAgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hdGgob3B0aW9ucz86IE1hdGhPcHRpb25zKTogUGx1Z2luPFwibWQubWF0aFwiLCBNYXRoT3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcIm1kLm1hdGhcIiB9XG4gIHJldHVybiB7IG5hbWU6IFwibWQubWF0aFwiLCBvcHRpb25zIH1cbn1cblxuLyoqIFRoZSBgbWQubWR4YCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gbWR4KG9wdGlvbnM/OiBNZHhPcHRpb25zKTogUGx1Z2luPFwibWQubWR4XCIsIE1keE9wdGlvbnM+IHtcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgbmFtZTogXCJtZC5tZHhcIiB9XG4gIHJldHVybiB7IG5hbWU6IFwibWQubWR4XCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBtZC5mcm9udG1hdHRlcmAgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb250bWF0dGVyKG9wdGlvbnM/OiBGcm9udG1hdHRlck9wdGlvbnMpOiBQbHVnaW48XCJtZC5mcm9udG1hdHRlclwiLCBGcm9udG1hdHRlck9wdGlvbnM+IHtcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgbmFtZTogXCJtZC5mcm9udG1hdHRlclwiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJtZC5mcm9udG1hdHRlclwiLCBvcHRpb25zIH1cbn1cblxuLyoqIFRoZSBgbWQuZ2Vtb2ppYCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gZ2Vtb2ppKCk6IFBsdWdpbjxcIm1kLmdlbW9qaVwiPiB7XG4gIHJldHVybiB7IG5hbWU6IFwibWQuZ2Vtb2ppXCIgfVxufVxuXG4vKiogVGhlIGBtZC5jb21wb25lbnRgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wb25lbnQob3B0aW9ucz86IENvbXBvbmVudE9wdGlvbnMpOiBQbHVnaW48XCJtZC5jb21wb25lbnRcIiwgQ29tcG9uZW50T3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcIm1kLmNvbXBvbmVudFwiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJtZC5jb21wb25lbnRcIiwgb3B0aW9ucyB9XG59XG5cbi8qKiBUaGUgYG1kLnBhY2thZ2VDb21tYW5kYCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gcGFja2FnZUNvbW1hbmQob3B0aW9ucz86IFBhY2thZ2VDb21tYW5kT3B0aW9ucyk6IFBsdWdpbjxcIm1kLnBhY2thZ2VDb21tYW5kXCIsIFBhY2thZ2VDb21tYW5kT3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcIm1kLnBhY2thZ2VDb21tYW5kXCIgfVxuICByZXR1cm4geyBuYW1lOiBcIm1kLnBhY2thZ2VDb21tYW5kXCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBtZC5oZWFkaW5nSWRgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoZWFkaW5nSWQob3B0aW9ucz86IEhlYWRpbmdJZE9wdGlvbnMpOiBQbHVnaW48XCJtZC5oZWFkaW5nSWRcIiwgSGVhZGluZ0lkT3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcIm1kLmhlYWRpbmdJZFwiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJtZC5oZWFkaW5nSWRcIiwgb3B0aW9ucyB9XG59XG5cbi8qKiBUaGUgYG1kLnBhdGhSZXdyaXRlYCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gcGF0aFJld3JpdGUob3B0aW9ucz86IFBhdGhSZXdyaXRlT3B0aW9ucyk6IFBsdWdpbjxcIm1kLnBhdGhSZXdyaXRlXCIsIFBhdGhSZXdyaXRlT3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcIm1kLnBhdGhSZXdyaXRlXCIgfVxuICByZXR1cm4geyBuYW1lOiBcIm1kLnBhdGhSZXdyaXRlXCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBtZC5zdHJpcGAgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmlwKG9wdGlvbnM/OiBTdHJpcE9wdGlvbnMpOiBQbHVnaW48XCJtZC5zdHJpcFwiLCBTdHJpcE9wdGlvbnM+IHtcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgbmFtZTogXCJtZC5zdHJpcFwiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJtZC5zdHJpcFwiLCBvcHRpb25zIH1cbn1cblxuLyoqIFRoZSBgbWQudG9jYCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gdG9jKG9wdGlvbnM/OiBUb2NPcHRpb25zKTogUGx1Z2luPFwibWQudG9jXCIsIFRvY09wdGlvbnM+IHtcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgbmFtZTogXCJtZC50b2NcIiB9XG4gIHJldHVybiB7IG5hbWU6IFwibWQudG9jXCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBtZC5zdHJpbmdpZnlgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnkob3B0aW9ucz86IFN0cmluZ2lmeU9wdGlvbnMpOiBQbHVnaW48XCJtZC5zdHJpbmdpZnlcIiwgU3RyaW5naWZ5T3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcIm1kLnN0cmluZ2lmeVwiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJtZC5zdHJpbmdpZnlcIiwgb3B0aW9ucyB9XG59XG5cbi8qKiBUaGUgYG1kLnRvSHRtbGAgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSHRtbChvcHRpb25zPzogVG9IdG1sT3B0aW9ucyk6IFBsdWdpbjxcIm1kLnRvSHRtbFwiLCBUb0h0bWxPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwibWQudG9IdG1sXCIgfVxuICByZXR1cm4geyBuYW1lOiBcIm1kLnRvSHRtbFwiLCBvcHRpb25zIH1cbn1cblxuLyoqIFRoZSBgbWQudG9OYXR1cmFsTGFuZ3VhZ2VgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b05hdHVyYWxMYW5ndWFnZShvcHRpb25zPzogVG9OYXR1cmFsTGFuZ3VhZ2VPcHRpb25zKTogUGx1Z2luPFwibWQudG9OYXR1cmFsTGFuZ3VhZ2VcIiwgVG9OYXR1cmFsTGFuZ3VhZ2VPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwibWQudG9OYXR1cmFsTGFuZ3VhZ2VcIiB9XG4gIHJldHVybiB7IG5hbWU6IFwibWQudG9OYXR1cmFsTGFuZ3VhZ2VcIiwgb3B0aW9ucyB9XG59XG4iXX0=
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9nZW5lcmF0ZWQvbWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0VBQStFO0FBNFgvRSw2QkFBNkI7QUFDN0IsTUFBTSxVQUFVLEtBQUssQ0FBQyxPQUFzQjtJQUMxQyxJQUFJLE9BQU8sS0FBSyxTQUFTO1FBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQTtJQUN0RCxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUN0QyxDQUFDO0FBRUQsaUNBQWlDO0FBQ2pDLE1BQU0sVUFBVSxTQUFTLENBQUMsT0FBMEI7SUFDbEQsSUFBSSxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLENBQUE7SUFDMUQsT0FBTyxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLENBQUE7QUFDMUMsQ0FBQztBQUVELDJCQUEyQjtBQUMzQixNQUFNLFVBQVUsR0FBRyxDQUFDLE9BQW9CO0lBQ3RDLElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFBO0lBQ3BELE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFBO0FBQ3BDLENBQUM7QUFFRCxzQ0FBc0M7QUFDdEMsTUFBTSxVQUFVLGNBQWM7SUFDNUIsT0FBTyxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxDQUFBO0FBQ3RDLENBQUM7QUFFRCw0QkFBNEI7QUFDNUIsTUFBTSxVQUFVLElBQUksQ0FBQyxPQUFxQjtJQUN4QyxJQUFJLE9BQU8sS0FBSyxTQUFTO1FBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQTtJQUNyRCxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUNyQyxDQUFDO0FBRUQsMkJB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QTtBQUMxQyxDQUFDO0FBRUQsOEJBQThCO0FBQzlCLE1BQU0sVUFBVSxNQUFNLENBQUMsT0FBdUI7SUFDNUMsSUFBSSxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUE7SUFDdkQsT0FBTyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLENBQUE7QUFDdkMsQ0FBQztBQUVELHlDQUF5QztBQUN6QyxNQUFNLFVBQVUsaUJBQWlCLENBQUMsT0FBa0M7SUFDbEUsSUFBSSxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQTtJQUNsRSxPQUFPLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFLE9BQU8sRUFBRSxDQUFBO0FBQ2xELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHZW5lcmF0ZWQgYnkgYHBucG0gZ2VuZXJhdGU6YmluZGluZ3NgIGZyb20gdGhlIGNyYXRlJ3MgcGx1Z2luczsgZG8gbm90IGVkaXQuXG5cbmltcG9ydCB0eXBlIHsgUm9vdCB9IGZyb20gXCJtZGFzdFwiXG5pbXBvcnQgdHlwZSB7IFBhcnNlciwgUGx1Z2luIH0gZnJvbSBcIi4uL21vZGVscy9wbHVnaW4udHNcIlxuXG4vKiogYG1kLnBhcnNlYDogTWFya2Rvd24gaW50byBtZGFzdC4gKi9cbmV4cG9ydCB0eXBlIFBhcnNlT3B0aW9ucyA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG5cbi8qKiBgbWQuZGlyZWN0aXZlYDogZ2VuZXJpYyBkaXJlY3RpdmVzLCBgOmFgLCBgOjpiYCBhbmQgYDo6OmNgLCByZWFkIGJ5IGBtZC5wYXJzZWAgYW5kIHdyaXR0ZW4gYnkgYG1kLnN0cmluZ2lmeWA7IG9wdGlvbnMgbmFtZWQgYXMgbWRhc3QtdXRpbC1kaXJlY3RpdmUncyBzZXJpYWxpemVyIG5hbWVzIHRoZW0uICovXG5leHBvcnQgaW50ZXJmYWNlIERpcmVjdGl2ZU9wdGlvbnMge1xuICAvKiogV3JpdGUgYW4gZW1wdHkgYXR0cmlidXRlIGFzIGl0cyBuYW1lIGFsb25lLCBge2F9YCwgcmF0aGVyIHRoYW4gYHthPVwiXCJ9YC4gQGRlZmF1bHQgdHJ1ZSAqL1xuICBjb2xsYXBzZUVtcHR5QXR0cmlidXRlcz86IGJvb2xlYW5cbiAgLyoqIFdyaXRlIGBpZGAgYW5kIGBjbGFzc2AgYXMgYCNhYCBhbmQgYC5iYCB3aGVyZSB0aGV5IGNhbiBiZS4gQGRlZmF1bHQgdHJ1ZSAqL1xuICBwcmVmZXJTaG9ydGN1dD86IGJvb2xlYW5cbiAgLyoqIExlYXZlIGF0dHJpYnV0ZSB2YWx1ZXMgdW5xdW90ZWQgd2hlcmUgdGhleSBjYW4gYmUuIEBkZWZhdWx0IGZhbHNlICovXG4gIHByZWZlclVucXVvdGVkPzogYm9vbGVhblxuICAvKiogVGhlIHF1b3RlIG9mIGF0dHJpYnV0ZSB2YWx1ZXM6IGBcImAgb3IgYCdgOyBgbWQuc3RyaW5naWZ5YCdzIGBxdW90ZWAgd2hlbiB1bnNldC4gKi9cbiAgcXVvdGU/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBVc2UgdGhlIG90aGVyIHF1b3RlIHdoZW4gdGhlIHByZWZlcnJlZCBvbmUgb2NjdXJzIG1vcmUgb2Z0ZW4gaW4gYSB2YWx1ZS4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgcXVvdGVTbWFydD86IGJvb2xlYW5cbn1cblxuLyoqIGBtZC5nZm1gOiBHaXRIdWIgRmxhdm9yZWQgTWFya2Rvd24ncyBzeW50YXgsIHJlYWQgYnkgYG1kLnBhcnNlYCBhbmQgd3JpdHRlbiBieSBgbWQuc3RyaW5naWZ5YDsgb3B0aW9ucyBuYW1lZCBhcyByZW1hcmstZ2ZtIG5hbWVzIHRoZW0uICovXG5leHBvcnQgaW50ZXJmYWNlIEdmbU9wdGlvbnMge1xuICAvKiogTGV0IG9uZSB0aWxkZSwgYH5hfmAsIGZvcm0gc3RyaWtldGhyb3VnaCwgYXMgd2VsbCBhcyB0d28uIEBkZWZhdWx0IHRydWUgKi9cbiAgc2luZ2xlVGlsZGU/OiBib29sZWFuXG4gIC8qKiBQYWQgdGFibGUgY2VsbHMgd2l0aCBhIHNwYWNlIG9uIGVhY2ggc2lkZSB3aGVuIHdyaXRpbmcgTWFya2Rvd24uIEBkZWZhdWx0IHRydWUgKi9cbiAgdGFibGVDZWxsUGFkZGluZz86IGJvb2xlYW5cbiAgLyoqIExpbmUgdXAgdGFibGUgcGlwZXMgd2hlbiB3cml0aW5nIE1hcmtkb3duLiBAZGVmYXVsdCB0cnVlICovXG4gIHRhYmxlUGlwZUFsaWduPzogYm9vbGVhblxuICAvKiogV3JpdGUgYSBmb290bm90ZSBkZWZpbml0aW9uJ3MgZmlyc3QgbGluZSBibGFuayB3aGVuIGl0IGhvbGRzIGZsb3cgY29udGVudC4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgZmlyc3RMaW5lQmxhbms/OiBib29sZWFuXG59XG5cbi8qKiBgbWQubWF0aGA6IG1hdGggc3ludGF4LCBgJCRgIGJsb2NrcyBhbmQgYCRgIHRleHQsIHJlYWQgYnkgYG1kLnBhcnNlYCBhbmQgd3JpdHRlbiBieSBgbWQuc3RyaW5naWZ5YDsgb3B0aW9ucyBuYW1lZCBhcyByZW1hcmstbWF0aCBuYW1lcyB0aGVtLiAqL1xuZXhwb3J0IGludGVyZmFjZSBNYXRoT3B0aW9ucyB7XG4gIC8qKiBMZXQgb25lIGRvbGxhciwgYCRhJGAsIGZvcm0gbWF0aCBpbiB0ZXh0LCBhcyB3ZWxsIGFzIHR3by4gQGRlZmF1bHQgdHJ1ZSAqL1xuICBzaW5nbGVEb2xsYXJUZXh0TWF0aD86IGJvb2xlYW5cbn1cblxuLyoqIGBtZC5tZHhgOiBNRFggc3ludGF4LCBKU1gsIGV4cHJlc3Npb25zIGFuZCBFU00sIHJlYWQgYnkgYG1kLnBhcnNlYCBhbmQgd3JpdHRlbiBieSBgbWQuc3RyaW5naWZ5YDsgaXQgdHVybnMgb2ZmIGluZGVudGVkIGNvZGUsIGF1dG9saW5rcyBhbmQgcmF3IEhUTUw7IG9wdGlvbnMgbmFtZWQgYXMgcmVtYXJrLW1keCBhbmQgbWRhc3QtdXRpbC1tZHgtanN4J3Mgc2VyaWFsaXplciBuYW1lIHRoZW0uICovXG5leHBvcnQgaW50ZXJmYWNlIE1keE9wdGlvbnMge1xuICAvKiogVGhlIHF1b3RlIG9mIEpTWCBhdHRyaWJ1dGUgdmFsdWVzOiBgXCJgICh3aGVuIHVuc2V0KSBvciBgJ2AuICovXG4gIHF1b3RlPzogc3RyaW5nIHwgbnVsbFxuICAvKiogVXNlIHRoZSBvdGhlciBxdW90ZSB3aGVuIHRoZSBwcmVmZXJyZWQgb25lIG9jY3VycyBtb3JlIG9mdGVuIGluIGEgdmFsdWUuIEBkZWZhdWx0IGZhbHNlICovXG4gIHF1b3RlU21hcnQ/OiBib29sZWFuXG4gIC8qKiBXcml0ZSBzZWxmLWNsb3NpbmcgdGFncyB3aXRob3V0IGEgc3BhY2UgYmVmb3JlIHRoZSBzbGFzaCwgYDxhLz5gLiBAZGVmYXVsdCBmYWxzZSAqL1xuICB0aWdodFNlbGZDbG9zaW5nPzogYm9vbGVhblxuICAvKiogVGhlIHdpZHRoIHBhc3Qgd2hpY2ggYSBmbG93IGVsZW1lbnQncyBhdHRyaWJ1dGVzIGdvIG9uIGxpbmVzIG9mIHRoZWlyIG93bi4gKi9cbiAgcHJpbnRXaWR0aD86IG51bWJlciB8IG51bGxcbn1cblxuLyoqIFRoZSBraW5kcyBvZiBtYXR0ZXIgdG8gcmVjb2duaXplLCBhcyByZW1hcmstZnJvbnRtYXR0ZXIgdGFrZXMgdGhlbSAoYSBwcmVzZXQsIGEgbWF0dGVyLCBvciBhIGxpc3Qgb2YgdGhlbTsgYHlhbWxgIHdoZW4gdW5zZXQpLCBvciB0ZXh0bGFuZSdzIG9wdGlvbnMgb2JqZWN0LiAqL1xuZXhwb3J0IHR5cGUgRnJvbnRtYXR0ZXJPcHRpb25zID0gXCJ5YW1sXCIgfCBcInRvbWxcIiB8IE1hdHRlciB8IChcInlhbWxcIiB8IFwidG9tbFwiIHwgTWF0dGVyKVtdIHwgRnJvbnRtYXR0ZXJTZXR0aW5nc1xuXG4vKiogT25lIGtpbmQgb2YgZnJvbnRtYXR0ZXI6IHRoZSBub2RlIGB0eXBlYCBpdCBiZWNvbWVzIGFuZCBpdHMgZmVuY2VzLCBhIGBtYXJrZXJgIHJlcGVhdGVkIHRocmVlIHRpbWVzIG9yIGEgd2hvbGUgYGZlbmNlYC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWF0dGVyIHtcbiAgdHlwZTogc3RyaW5nXG4gIG1hcmtlcj86IEZlbmNlXG4gIGZlbmNlPzogRmVuY2VcbiAgYW55d2hlcmU/OiBib29sZWFuXG59XG5cbi8qKiBEaWZmZXJlbnQgb3BlbmluZyBhbmQgY2xvc2luZyBmZW5jZXMuICovXG5leHBvcnQgaW50ZXJmYWNlIEZlbmNlUGFpciB7XG4gIG9wZW46IHN0cmluZ1xuICBjbG9zZTogc3RyaW5nXG59XG5cbi8qKiBBIGZlbmNlLCBvciBpdHMgb3BlbmluZyBhbmQgY2xvc2luZyBvbmVzLiAqL1xuZXhwb3J0IHR5cGUgRmVuY2UgPSBzdHJpbmcgfCBGZW5jZVBhaXJcblxuLyoqIHRleHRsYW5lJ3Mgb3B0aW9uczogdGhlIG1hdHRlcnMsIGFuZCB3aGF0IHRvIGRvIHdpdGggWUFNTCBmcm9udG1hdHRlci4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnJvbnRtYXR0ZXJTZXR0aW5ncyB7XG4gIC8qKiBUaGUga2luZHMgb2YgbWF0dGVyIHRvIHJlY29nbml6ZSwgYXMgcmVtYXJrLWZyb250bWF0dGVyIHRha2VzIHRoZW07IGB5YW1sYCB3aGVuIHVuc2V0LiAqL1xuICBtYXR0ZXJzPzogXCJ5YW1sXCIgfCBcInRvbWxcIiB8IE1hdHRlciB8IChcInlhbWxcIiB8IFwidG9tbFwiIHwgTWF0dGVyKVtdXG4gIC8qKiBQYXJzZSB0aGUgWUFNTCBmcm9udG1hdHRlciBhIGRvY3VtZW50IHN0YXJ0cyB3aXRoIGludG8gYGZpbGUuZGF0YS5tYXR0ZXJgLCBge31gIHdoZW4gdGhlcmUgaXMgbm9uZSwgYXMgdmZpbGUtbWF0dGVyIGRvZXMuICovXG4gIGRhdGE/OiBib29sZWFuXG4gIC8qKiBSZW1vdmUgdGhlIFlBTUwgZnJvbnRtYXR0ZXIgYSBkb2N1bWVudCBzdGFydHMgd2l0aCBmcm9tIHRoZSB0cmVlLiAqL1xuICBzdHJpcD86IGJvb2xlYW5cbn1cblxuLyoqIGBtZC5jb21wb25lbnRgOiBkaXJlY3RpdmVzLCBHaXRIdWIgYWxlcnRzIGFuZCBvdGhlciBub2RlcyBpbnRvIE1EWCBKU1ggZWxlbWVudHMsIHRoZSBjb21wb25lbnRzIGFuIE1EWCBydW50aW1lIHJlbmRlcnMsIGJ5IGRlY2xhcmF0aXZlIHJ1bGVzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb21wb25lbnRPcHRpb25zIHtcbiAgLyoqIFJ1bGVzIGZvciBkaXJlY3RpdmVzOyB0aGUgZmlyc3QgdGhhdCBtYXRjaGVzIGEgZGlyZWN0aXZlIGNvbnZlcnRzIGl0LiAqL1xuICBkaXJlY3RpdmVzPzogRGlyZWN0aXZlUnVsZVtdXG4gIC8qKiBHaXRIdWIgYWxlcnRzLCBgPiBbIU5PVEVdYCwgaW50byBhIGNvbXBvbmVudC4gKi9cbiAgYWxlcnRzPzogQWxlcnRSdWxlIHwgbnVsbFxuICAvKiogTm9kZSB0eXBlcywgc3VjaCBhcyBgZGVmTGlzdGAsIGludG8gY29tcG9uZW50cyBrZWVwaW5nIHRoZWlyIGNoaWxkcmVuLiBAZGVmYXVsdCB7fSAqL1xuICBub2Rlcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbiAgLyoqIFdoYXQgYmVjb21lcyBvZiBhIGRpcmVjdGl2ZSBubyBydWxlIGNvbnZlcnRzLiAqL1xuICB1bmtub3duRGlyZWN0aXZlcz86IFVua25vd25EaXJlY3RpdmVzXG4gIC8qKiBSdWxlcyBmb3IgZmVuY2VkIGNvZGU7IHRoZSBmaXJzdCB0aGF0IG1hdGNoZXMgYSBibG9jayBhcHBsaWVzLiAqL1xuICBjb2Rlcz86IENvZGVSdWxlW11cbn1cblxuLyoqIEhvdyBgbWQuY29tcG9uZW50YCB0dXJucyBtYXRjaGluZyBkaXJlY3RpdmVzIGludG8gb25lIGNvbXBvbmVudC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGlyZWN0aXZlUnVsZSB7XG4gIC8qKiBUaGUgZGlyZWN0aXZlJ3MgbmFtZSwgb3Igc2V2ZXJhbC4gKi9cbiAgbmFtZTogTmFtZXNcbiAgLyoqIFRoZSBraW5kIG9mIGRpcmVjdGl2ZTogYHRleHRgLCBgbGVhZmAgb3IgYGNvbnRhaW5lcmA7IGFueSB3aGVuIGxlZnQgb3V0LiAqL1xuICBraW5kPzogRGlyZWN0aXZlS2luZCB8IG51bGxcbiAgLyoqIEF0dHJpYnV0ZSB2YWx1ZXMgdGhlIGRpcmVjdGl2ZSBtdXN0IGhhdmUuIEBkZWZhdWx0IHt9ICovXG4gIHdoZXJlPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPlxuICAvKiogVGhlIGNvbXBvbmVudDogYSB0ZXh0IGVsZW1lbnQgZm9yIGEgdGV4dCBkaXJlY3RpdmUsIGVsc2UgYSBmbG93IGVsZW1lbnQuICovXG4gIGNvbXBvbmVudDogc3RyaW5nXG4gIC8qKiBUaGUgYXR0cmlidXRlIHRoYXQgZ2V0cyB0aGUgZGlyZWN0aXZlJ3MgbmFtZS4gKi9cbiAgbmFtZUFzPzogc3RyaW5nIHwgbnVsbFxuICAvKiogVGhlIGF0dHJpYnV0ZSB0aGF0IGdldHMgdGhlIGxhYmVsJ3MgdGV4dDogYSBjb250YWluZXIncyBsYWJlbCBwYXJhZ3JhcGggb3IgYSB0ZXh0IG9yIGxlYWYgZGlyZWN0aXZlJ3MgY29udGVudCwgd2hpY2ggaXMgdGhlbiBkcm9wcGVkLiAqL1xuICBsYWJlbEFzPzogc3RyaW5nIHwgbnVsbFxuICAvKiogVGhlIGxhYmVsJ3MgdGV4dCB3aGVuIHRoZXJlIGlzIG5vbmUuICovXG4gIGxhYmVsRGVmYXVsdD86IHN0cmluZyB8IG51bGxcbiAgLyoqIFRoZSBhdHRyaWJ1dGVzIHRvIGtlZXAsIGluIG9yZGVyOyBldmVyeSBvbmUsIGFzIHdyaXR0ZW4sIHdoZW4gbGVmdCBvdXQuICovXG4gIGF0dHJpYnV0ZXM/OiBBdHRyaWJ1dGVSdWxlW10gfCBudWxsXG4gIC8qKiBBdHRyaWJ1dGVzIHdpdGhvdXQgd2hpY2ggdGhlIGRpcmVjdGl2ZSBpcyBsZWZ0IHRvIGB1bmtub3duRGlyZWN0aXZlc2AuIEBkZWZhdWx0IFtdICovXG4gIHJlcXVpcmVkPzogc3RyaW5nW11cbiAgLyoqIFdyYXAgcnVucyBvZiBhZGphY2VudCBzaWJsaW5ncyB0aGlzIHJ1bGUgY29udmVydGVkIGluIGFub3RoZXIgY29tcG9uZW50LiAqL1xuICBncm91cD86IEdyb3VwUnVsZSB8IG51bGxcbiAgLyoqIFRoZSBhdHRyaWJ1dGUgdGhhdCBnZXRzIHRoZSBsaXN0cyBvZiBhIGNvbnRhaW5lciBkaXJlY3RpdmUgYXMgYSBmaWxlIHRyZWUsIEpTT04gaXRlbXMgYHtuYW1lLCB0eXBlLCBjb21tZW50PywgaGlnaGxpZ2h0ZWQ/LCBjaGlsZHJlbj99YDsgdGhlIGxpc3RzIGxlYXZlIGl0cyBjb250ZW50LiAqL1xuICB0cmVlQXM/OiBzdHJpbmcgfCBudWxsXG59XG5cbi8qKiBPbmUgbmFtZSBvciBzZXZlcmFsLiAqL1xuZXhwb3J0IHR5cGUgTmFtZXMgPSBzdHJpbmcgfCBzdHJpbmdbXVxuXG4vKiogQSBkaXJlY3RpdmUncyBraW5kLCBieSBob3cgbWFueSBjb2xvbnMgb3BlbiBpdC4gKi9cbmV4cG9ydCB0eXBlIERpcmVjdGl2ZUtpbmQgPSBcInRleHRcIiB8IFwibGVhZlwiIHwgXCJjb250YWluZXJcIlxuXG4vKiogQW4gYXR0cmlidXRlIHRvIGtlZXA6IGl0cyBuYW1lLCBvciBpdHMgbmFtZSB3aXRoIHdoYXQgdG8gY2FsbCBpdCBhbmQgYSBkZWZhdWx0LiAqL1xuZXhwb3J0IHR5cGUgQXR0cmlidXRlUnVsZSA9IHN0cmluZyB8IHsgbmFtZTogc3RyaW5nOyByZW5hbWU/OiBzdHJpbmcgfCBudWxsOyBkZWZhdWx0Pzogc3RyaW5nIHwgbnVsbCB9XG5cbi8qKiBUaGUgY29tcG9uZW50IHdyYXBwaW5nIGEgcnVuIG9mIGFkamFjZW50IHNpYmxpbmdzIG9uZSBydWxlIGNvbnZlcnRlZC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JvdXBSdWxlIHtcbiAgLyoqIFRoZSB3cmFwcGluZyBjb21wb25lbnQuICovXG4gIGNvbXBvbmVudDogc3RyaW5nXG4gIC8qKiBUaGUgc2hvcnRlc3QgcnVuIHdyYXBwZWQ7IDIgd2hlbiBsZWZ0IG91dC4gKi9cbiAgbWluPzogbnVtYmVyIHwgbnVsbFxuICAvKiogQXR0cmlidXRlcyB0aGUgd3JhcHBlciBjb3BpZXMgZnJvbSB0aGUgcnVuJ3MgZmlyc3QgZWxlbWVudC4gQGRlZmF1bHQgW10gKi9cbiAgaW5oZXJpdD86IHN0cmluZ1tdXG59XG5cbi8qKiBIb3cgYG1kLmNvbXBvbmVudGAgdHVybnMgR2l0SHViIGFsZXJ0cywgYSBibG9jayBxdW90ZSBvcGVuaW5nIHdpdGggYFshVFlQRV1gLCBpbnRvIGEgY29tcG9uZW50LiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbGVydFJ1bGUge1xuICAvKiogVGhlIGNvbXBvbmVudCBhbiBhbGVydCBiZWNvbWVzLiAqL1xuICBjb21wb25lbnQ6IHN0cmluZ1xuICAvKiogVGhlIGF0dHJpYnV0ZSB0aGF0IGdldHMgdGhlIGFsZXJ0J3MgdHlwZS4gKi9cbiAgdHlwZUFzOiBzdHJpbmdcbiAgLyoqIEVhY2ggYWxlcnQgdHlwZSwgYXMgd3JpdHRlbiwgdG8gdGhlIHZhbHVlIG9mIGB0eXBlQXNgOyBvdGhlciB0eXBlcyBzdGF5IGJsb2NrIHF1b3Rlcy4gKi9cbiAgdHlwZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbn1cblxuLyoqIFdoYXQgYG1kLmNvbXBvbmVudGAgZG9lcyB3aXRoIGEgZGlyZWN0aXZlIG5vIHJ1bGUgY29udmVydHMuICovXG5leHBvcnQgdHlwZSBVbmtub3duRGlyZWN0aXZlcyA9IFwia2VlcFwiIHwgXCJzb3VyY2VcIlxuXG4vKiogSG93IGBtZC5jb21wb25lbnRgIHR1cm5zIG1hdGNoaW5nIGNvZGUgYmxvY2tzIGludG8gYSBjb21wb25lbnQsIG9yIGdyb3VwcyB0aGVtLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2RlUnVsZSB7XG4gIC8qKiBUaGUgYmxvY2sncyBsYW5ndWFnZSwgb3Igc2V2ZXJhbDsgYW55IHdoZW4gbGVmdCBvdXQuICovXG4gIGxhbmc/OiBOYW1lcyB8IG51bGxcbiAgLyoqIEEgYGtleT1cInZhbHVlXCJgIHRoZSBibG9jaydzIG1ldGEgbXVzdCBob2xkLiAqL1xuICBtZXRhPzogc3RyaW5nIHwgbnVsbFxuICAvKiogVGhlIGNvbXBvbmVudCB0aGUgYmxvY2sgYmVjb21lczsgbGVmdCBvdXQsIHRoZSBibG9jayBzdGF5cyBjb2RlIGFuZCBvbmx5IGdyb3Vwcy4gKi9cbiAgY29tcG9uZW50Pzogc3RyaW5nIHwgbnVsbFxuICAvKiogVGhlIGF0dHJpYnV0ZSB0aGF0IGdldHMgdGhlIGNvZGU7IGxlZnQgb3V0LCB0aGUgY29kZSBpcyB0aGUgY29tcG9uZW50J3MgdGV4dC4gKi9cbiAgdmFsdWVBcz86IHN0cmluZyB8IG51bGxcbiAgLyoqIE1ldGEgYGtleT1cInZhbHVlXCJgIHBhaXJzIHRvIGtlZXAgYXMgYXR0cmlidXRlcywgaW4gb3JkZXIuICovXG4gIGF0dHJpYnV0ZXM/OiBBdHRyaWJ1dGVSdWxlW11cbiAgLyoqIFdyYXAgcnVucyBvZiBhZGphY2VudCBibG9ja3MgdGhpcyBydWxlIG1hdGNoZWQgaW4gYW5vdGhlciBjb21wb25lbnQuICovXG4gIGdyb3VwPzogQ29kZUdyb3VwUnVsZSB8IG51bGxcbn1cblxuLyoqIFRoZSBjb21wb25lbnQgd3JhcHBpbmcgYSBydW4gb2YgYWRqYWNlbnQgY29kZSBibG9ja3Mgb25lIHJ1bGUgbWF0Y2hlZDsgdGhlIG1ldGEga2V5cyBpdCByZWFkcyBhcmUgdGFrZW4gb3V0IG9mIGVhY2ggYmxvY2sncyBtZXRhLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2RlR3JvdXBSdWxlIHtcbiAgLyoqIFRoZSB3cmFwcGluZyBjb21wb25lbnQuICovXG4gIGNvbXBvbmVudDogc3RyaW5nXG4gIC8qKiBUaGUgc2hvcnRlc3QgcnVuIHdyYXBwZWQ7IDIgd2hlbiBsZWZ0IG91dC4gKi9cbiAgbWluPzogbnVtYmVyIHwgbnVsbFxuICAvKiogVGhlIGF0dHJpYnV0ZSB0aGF0IGdldHMgdGhlIHJ1bidzIHZhbHVlcyBvZiB0aGUgcnVsZSdzIGBtZXRhYCBrZXksIGFzIGEgSlNPTiBsaXN0LiAqL1xuICBjb2xsZWN0Pzogc3RyaW5nIHwgbnVsbFxuICAvKiogTWV0YSBrZXlzIHRoZSB3cmFwcGVyIGNvcGllcyBmcm9tIHRoZSBydW4ncyBmaXJzdCBibG9jayBhcyBhdHRyaWJ1dGVzLiBAZGVmYXVsdCBbXSAqL1xuICBpbmhlcml0Pzogc3RyaW5nW11cbn1cblxuLyoqIGBtZC5wYWNrYWdlQ29tbWFuZGA6IGEgZmVuY2VkIGJsb2NrIG9mIHBhY2thZ2UtbWFuYWdlciBjb21tYW5kcywgaXRzIGxhbmd1YWdlIG5hbWluZyB0aGUgZWNvc3lzdGVtIChgbnBtYCwgYHBpcGAsIGBjYXJnb2ApLCBpbnRvIG9uZSBjb21wb25lbnQgd2l0aCB0aGUgY29tbWFuZHMgY29udmVydGVkIGZvciBlYWNoIG1hbmFnZXIsIGFzIGBAZG9jdXNhdXJ1cy9yZW1hcmstcGx1Z2luLW5wbTJ5YXJuYCBkb2VzIGZvciBucG0uICovXG5leHBvcnQgaW50ZXJmYWNlIFBhY2thZ2VDb21tYW5kT3B0aW9ucyB7XG4gIC8qKiBUaGUgY29tcG9uZW50IGEgYmxvY2sgYmVjb21lczsgb25lIHN0cmluZyBhdHRyaWJ1dGUgcGVyIG1hbmFnZXIuIEBkZWZhdWx0IFwiUGFja2FnZVRhYnNcIiAqL1xuICBjb21wb25lbnQ/OiBzdHJpbmdcbiAgLyoqIEVhY2ggZWNvc3lzdGVtJ3MgbWFuYWdlcnMsIGluIGF0dHJpYnV0ZSBvcmRlcjsgYW4gZW1wdHkgbGlzdCBsZWF2ZXMgaXRzIGJsb2NrcyBjb2RlLiAqL1xuICBlY29zeXN0ZW1zPzogRWNvc3lzdGVtc1xufVxuXG4vKiogVGhlIG1hbmFnZXJzIGBtZC5wYWNrYWdlQ29tbWFuZGAgY29udmVydHMgZWFjaCBlY29zeXN0ZW0ncyBjb21tYW5kcyBmb3IuICovXG5leHBvcnQgaW50ZXJmYWNlIEVjb3N5c3RlbXMge1xuICAvKiogTWFuYWdlcnMgZm9yIGBucG1gIGJsb2NrcywgY29udmVydGVkIGFzIG5wbS10by15YXJuIGNvbnZlcnRzOyBucG0sIHBucG0sIHlhcm4gYW5kIGJ1biBieSBkZWZhdWx0LiAqL1xuICBucG0/OiBOcG1NYW5hZ2VyW11cbiAgLyoqIE1hbmFnZXJzIGZvciBgcGlwYCBibG9ja3M7IHBpcCwgdXYsIHBvZXRyeSBhbmQgcGRtIGJ5IGRlZmF1bHQuICovXG4gIHBpcD86IFBpcE1hbmFnZXJbXVxuICAvKiogTWFuYWdlcnMgZm9yIGBjYXJnb2AgYmxvY2tzOyBjYXJnbyBhbmQgY2FyZ28tYmluc3RhbGwgYnkgZGVmYXVsdC4gKi9cbiAgY2FyZ28/OiBDYXJnb01hbmFnZXJbXVxufVxuXG4vKiogQSBKYXZhU2NyaXB0IHBhY2thZ2UgbWFuYWdlciBhbiBgbnBtYCBjb21tYW5kIGNvbnZlcnRzIHRvLiAqL1xuZXhwb3J0IHR5cGUgTnBtTWFuYWdlciA9IFwibnBtXCIgfCBcInBucG1cIiB8IFwieWFyblwiIHwgXCJidW5cIiB8IFwiZGVub1wiIHwgXCJudWJcIlxuXG4vKiogQSBQeXRob24gcGFja2FnZSBtYW5hZ2VyIGEgYHBpcGAgY29tbWFuZCBjb252ZXJ0cyB0by4gKi9cbmV4cG9ydCB0eXBlIFBpcE1hbmFnZXIgPSBcInBpcFwiIHwgXCJ1dlwiIHwgXCJwb2V0cnlcIiB8IFwicGRtXCJcblxuLyoqIEEgUnVzdCBpbnN0YWxsZXIgYSBgY2FyZ29gIGNvbW1hbmQgY29udmVydHMgdG8uICovXG5leHBvcnQgdHlwZSBDYXJnb01hbmFnZXIgPSBcImNhcmdvXCIgfCBcImNhcmdvLWJpbnN0YWxsXCJcblxuLyoqIGBtZC5oZWFkaW5nSWRgOiBgeyNpZH1gIGF0IHRoZSBlbmQgb2YgYSBoZWFkaW5nLCBhZnRlciBhIHNwYWNlLCBhcyBpdHMgaWQsIGFzIHJlbWFyay1oZWFkaW5nLWlkIHJlYWRzIGl0OyBoZWFkaW5ncyB3aXRob3V0IG9uZSBrZWVwIG5vbmUuICovXG5leHBvcnQgaW50ZXJmYWNlIEhlYWRpbmdJZE9wdGlvbnMge1xuICAvKiogUmVhZCBhIHdob2xlIGF0dHJpYnV0ZSBsaXN0LCBgeyNpZCAuY2xhc3Mga2V5PXZhbHVlIGtleT1cInYgd1wifWAsIGFzIGRpcmVjdGl2ZXMgd3JpdGUgdGhlaXJzOiBjbGFzc2VzIGJlY29tZSBgY2xhc3NOYW1lYCBhbmQgb3RoZXIga2V5cyBwcm9wZXJ0aWVzLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBhdHRyaWJ1dGVzPzogYm9vbGVhblxuICAvKiogTGl0ZXJhbCBzdWZmaXhlcywgc3VjaCBhcyBgW3N0ZXBdYCwgc3RyaXBwZWQgZnJvbSBhIGhlYWRpbmcncyBlbmQgZm9yIHRoZSBhdHRyaWJ1dGVzIGVhY2ggbmFtZXMsIGEgdmFsdWUgb3IgYHRydWVgIGZvciBhIGJhcmUgb25lOiBge1wiW3N0ZXBdXCI6IHtcImRhdGEtc3RlcFwiOiB0cnVlfX1gLiAqL1xuICBtYXJrZXJzPzogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgTWFya2VyVmFsdWU+PlxufVxuXG4vKiogQW4gYXR0cmlidXRlIGEgaGVhZGluZyBtYXJrZXIgc2V0czogaXRzIHZhbHVlLCBvciBgdHJ1ZWAgZm9yIHRoZSBiYXJlIGF0dHJpYnV0ZS4gKi9cbmV4cG9ydCB0eXBlIE1hcmtlclZhbHVlID0gYm9vbGVhbiB8IHN0cmluZ1xuXG4vKiogYG1kLnBhdGhSZXdyaXRlYDogdGhlIFVSTHMgb2YgaW1hZ2VzLCBsaW5rcyBhbmQgZGVmaW5pdGlvbnMgYXMgYSBzaXRlIHNlcnZlcyB0aGVtOiByZWxhdGl2ZSBvbmVzIHJlc29sdmVkIGFnYWluc3QgdGhlIGZpbGUncyBwYXRoIGFuZCBtYWRlIHJvb3QtcmVsYXRpdmUsIGV2ZXJ5IHJvb3QtcmVsYXRpdmUgb25lIHVuZGVyIGBiYXNlYCwgYW5kIGxpbmtzIHRvIE1hcmtkb3duIGZpbGVzIHR1cm5lZCBpbnRvIHBhZ2UgVVJMcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGF0aFJld3JpdGVPcHRpb25zIHtcbiAgLyoqIFRoZSBkaXJlY3RvcnkgVVJMcyBjb3VudCBmcm9tLCBhcyB0aGUgZmlsZSdzIHBhdGggc3BlbGxzIGl0OyB0aGUgcGF0aCdzIG93biBzdGFydGluZyBwb2ludCB3aGVuIGxlZnQgb3V0LiAqL1xuICByb290Pzogc3RyaW5nIHwgbnVsbFxuICAvKiogVGhlIFVSTCB0aGUgc2l0ZSBpcyBzZXJ2ZWQgYXQsIHN1Y2ggYXMgYC9kb2NzYCwgcHV0IGJlZm9yZSBldmVyeSByb290LXJlbGF0aXZlIFVSTCBvbmNlLiAqL1xuICBiYXNlPzogc3RyaW5nIHwgbnVsbFxuICAvKiogVGhlIG5vZGVzIHdob3NlIFVSTHMgYXJlIHJld3JpdHRlbjsgaW1hZ2VzLCBsaW5rcyBhbmQgZGVmaW5pdGlvbnMgd2hlbiBsZWZ0IG91dC4gKi9cbiAgbm9kZXM/OiBVcmxOb2RlW10gfCBudWxsXG4gIC8qKiBNYXJrZG93biBmaWxlcywgcmVsYXRpdmUgdG8gYHJvb3RgLCB0byB0aGUgVVJMIG9mIHRoZWlyIHBhZ2U7IGEgbGluayB0byBvbmUgb2YgdGhlbSB0YWtlcyBpdCwgYmVmb3JlIGBtYXJrZG93bkxpbmtzYCBhcHBsaWVzLiBAZGVmYXVsdCB7fSAqL1xuICBwYWdlcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbiAgLyoqIEhvdyBhIGxpbmsgdG8gYSBNYXJrZG93biBmaWxlIG5vIHBhZ2UgbmFtZXMgYmVjb21lcyBhIFVSTC4gKi9cbiAgbWFya2Rvd25MaW5rcz86IE1hcmtkb3duTGlua3Ncbn1cblxuLyoqIEEgbm9kZSB3aXRoIGEgVVJMLiAqL1xuZXhwb3J0IHR5cGUgVXJsTm9kZSA9IFwiaW1hZ2VcIiB8IFwibGlua1wiIHwgXCJkZWZpbml0aW9uXCJcblxuLyoqIEhvdyBhIGxpbmsgdG8gYSBNYXJrZG93biBmaWxlIGJlY29tZXMgYSBVUkwuICovXG5leHBvcnQgdHlwZSBNYXJrZG93bkxpbmtzID0gXCJrZWVwXCIgfCBcImRpcmVjdG9yeVwiIHwgXCJodG1sXCJcblxuLyoqIGBtZC5zaGlmdEhlYWRpbmdgOiBldmVyeSBoZWFkaW5nJ3MgZGVwdGggbW92ZWQgYnkgYHNoaWZ0YCBhbmQga2VwdCB3aXRoaW4gMSB0byA2LCBhcyByZWh5cGUtc2hpZnQtaGVhZGluZyBtb3ZlcyBoYXN0J3MsIGFmdGVyIHRoZSBkb2N1bWVudCdzIHRpdGxlIGlzIGRyb3BwZWQgd2hlbiBhc2tlZC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2hpZnRIZWFkaW5nT3B0aW9ucyB7XG4gIC8qKiBUaGUgbGV2ZWxzIGFkZGVkIHRvIGVhY2ggaGVhZGluZydzIGRlcHRoOiBgLTFgIG1ha2VzIGFuIGgyIGFuIGgxLCBgMWAgYW4gaDEgYW4gaDIuIEBkZWZhdWx0IDAgKi9cbiAgc2hpZnQ/OiBudW1iZXJcbiAgLyoqIERyb3AgdGhlIGRvY3VtZW50J3MgZmlyc3Qgbm9kZSB3aGVuIGl0IGlzIGFuIGgxLCBsb29raW5nIHBhc3QgZnJvbnRtYXR0ZXIgYW5kIEVTTS4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgZHJvcFRpdGxlPzogYm9vbGVhblxufVxuXG4vKiogYG1kLnN0cmlwYDogbWRhc3QgZG93biB0byBpdHMgdGV4dCwgYXMgc3RyaXAtbWFya2Rvd24gZG9lczogY29kZSwgSFRNTCwgdGFibGVzIGFuZCB0aGUgbGlrZSBkcm9wcGVkLCBoZWFkaW5ncyBtYWRlIHBhcmFncmFwaHMsIGZvcm1hdHRpbmcgdW53cmFwcGVkLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdHJpcE9wdGlvbnMge1xuICAvKiogTm9kZSB0eXBlcyB0byBsZWF2ZSBhcyB0aGV5IGFyZSwgc3VjaCBhcyBgaW5saW5lQ29kZWAuIEBkZWZhdWx0IFtdICovXG4gIGtlZXA/OiBzdHJpbmdbXVxuICAvKiogTm9kZSB0eXBlcyB0byBkcm9wLCBiZXNpZGVzIHRob3NlIHN0cmlwLW1hcmtkb3duIGRyb3BzLiBAZGVmYXVsdCBbXSAqL1xuICByZW1vdmU/OiBzdHJpbmdbXVxufVxuXG4vKiogYG1kLnRvY2A6IGEgdGFibGUgb2YgY29udGVudHMgdW5kZXIgdGhlIGZpcnN0IGhlYWRpbmcgbWF0Y2hpbmcgYGhlYWRpbmdgLCByZXBsYWNpbmcgd2hhdCBzYXQgYmV0d2VlbiBpdCBhbmQgdGhlIG5leHQgaGVhZGluZyBhcyBkZWVwIG9yIHNoYWxsb3dlciwgYXMgcmVtYXJrLXRvYyBtYWtlcyBpdC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVG9jT3B0aW9ucyB7XG4gIC8qKiBUaGUgaGVhZGluZyB0byBwdXQgdGhlIHRhYmxlIHVuZGVyLCBhcyBKYXZhU2NyaXB0IHJlZ3VsYXIgZXhwcmVzc2lvbiBzb3VyY2UgbWF0Y2hlZCBhZ2FpbnN0IGl0cyB3aG9sZSB0ZXh0LCBjYXNlLWluc2Vuc2l0aXZlbHk7IGAodGFibGVbIC1db2ZbIC1dKT9jb250ZW50cz98dG9jYCB3aGVuIHVuc2V0LiAqL1xuICBoZWFkaW5nPzogc3RyaW5nIHwgbnVsbFxuICAvKiogVGhlIGRlZXBlc3QgaGVhZGluZyByYW5rIHRvIGxpc3QsIDEgdG8gNi4gKi9cbiAgbWF4RGVwdGg/OiBudW1iZXIgfCBudWxsXG4gIC8qKiBUaGUgc2hhbGxvd2VzdCBoZWFkaW5nIHJhbmsgdG8gbGlzdCwgMSB0byA2LiAqL1xuICBtaW5EZXB0aD86IG51bWJlciB8IG51bGxcbiAgLyoqIEhlYWRpbmdzIHRvIGxlYXZlIG91dCwgYXMgSmF2YVNjcmlwdCByZWd1bGFyIGV4cHJlc3Npb24gc291cmNlIG1hdGNoZWQgYWdhaW5zdCB0aGVpciB3aG9sZSB0ZXh0LCBjYXNlLWluc2Vuc2l0aXZlbHkuICovXG4gIHNraXA/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBLZWVwIHRoZSBsaXN0IGNvbXBhY3QsIHdpdGhvdXQgYmxhbmsgbGluZXMgYmV0d2VlbiBpdGVtczsgYHRydWVgIHdoZW4gdW5zZXQuICovXG4gIHRpZ2h0PzogYm9vbGVhbiB8IG51bGxcbiAgLyoqIE51bWJlciB0aGUgbGlzdCBpbnN0ZWFkIG9mIGJ1bGxldGluZyBpdC4gKi9cbiAgb3JkZXJlZD86IGJvb2xlYW4gfCBudWxsXG4gIC8qKiBXaGF0IGVhY2ggbGluaydzIGZyYWdtZW50IHN0YXJ0cyB3aXRoLCBzdWNoIGFzIGB1c2VyLWNvbnRlbnQtYC4gKi9cbiAgcHJlZml4Pzogc3RyaW5nIHwgbnVsbFxuICAvKiogVGhlIHBhcmVudHMgd2hvc2UgaGVhZGluZ3MgYXJlIGxpc3RlZCwgYXMgYSB1bmlzdC11dGlsLWlzIHRlc3Q6IGEgbm9kZSB0eXBlLCBhbiBvYmplY3Qgb2YgZmllbGRzIGEgcGFyZW50IG11c3QgZXF1YWwsIG9yIGEgbGlzdCBvZiB0aGVzZTsgb25seSB0aGUgcm9vdCB3aGVuIHVuc2V0LiAqL1xuICBwYXJlbnRzPzogUGFyZW50VGVzdCB8IG51bGxcbn1cblxuLyoqIEEgdW5pc3QtdXRpbC1pcyB0ZXN0IG9mIGEgbm9kZSwgd3JpdHRlbiBhcyBKU09OOiBvbmUgY2hlY2ssIG9yIGEgbGlzdCBhbnkgb2Ygd2hpY2ggcGFzc2VzLiAqL1xuZXhwb3J0IHR5cGUgUGFyZW50VGVzdCA9IFBhcmVudENoZWNrIHwgUGFyZW50Q2hlY2tbXVxuXG4vKiogT25lIHVuaXN0LXV0aWwtaXMgY2hlY2s6IGEgbm9kZSB0eXBlLCBvciBmaWVsZHMgYSBub2RlIG11c3QgZXF1YWwuICovXG5leHBvcnQgdHlwZSBQYXJlbnRDaGVjayA9IHN0cmluZyB8IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG5cbi8qKiBgbWQuc3RyaW5naWZ5YDogbWRhc3QgaW50byBNYXJrZG93bjsgb3B0aW9ucyBuYW1lZCBhcyBtZGFzdC11dGlsLXRvLW1hcmtkb3duIG5hbWVzIHRoZW0uICovXG5leHBvcnQgaW50ZXJmYWNlIFN0cmluZ2lmeU9wdGlvbnMge1xuICAvKiogVGhlIG1hcmtlciBvZiB1bm9yZGVyZWQgbGlzdCBpdGVtczogYCpgLCBgK2Agb3IgYC1gLiAqL1xuICBidWxsZXQ/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBUaGUgbWFya2VyIG9mIG9yZGVyZWQgbGlzdCBpdGVtczogYC5gIG9yIGApYC4gKi9cbiAgYnVsbGV0T3JkZXJlZD86IHN0cmluZyB8IG51bGxcbiAgLyoqIFRoZSBtYXJrZXIgb2YgYSBsaXN0IHJpZ2h0IGFmdGVyIGEgbGlzdCB3aXRoIGBidWxsZXRgLiAqL1xuICBidWxsZXRPdGhlcj86IHN0cmluZyB8IG51bGxcbiAgLyoqIENsb3NlIEFUWCBoZWFkaW5ncyB3aXRoIGFzIG1hbnkgYCNgIGFzIHRoZXkgb3BlbiB3aXRoLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBjbG9zZUF0eD86IGJvb2xlYW5cbiAgLyoqIFRoZSBtYXJrZXIgb2YgZW1waGFzaXM6IGAqYCBvciBgX2AuICovXG4gIGVtcGhhc2lzPzogc3RyaW5nIHwgbnVsbFxuICAvKiogVGhlIG1hcmtlciBvZiBmZW5jZWQgY29kZTogYGAgYCBgYCBvciBgfmAuICovXG4gIGZlbmNlPzogc3RyaW5nIHwgbnVsbFxuICAvKiogRmVuY2UgY29kZTsgYGZhbHNlYCBpbmRlbnRzIGl0IHdoZXJlIGl0IGNhbi4gQGRlZmF1bHQgdHJ1ZSAqL1xuICBmZW5jZXM/OiBib29sZWFuXG4gIC8qKiBOdW1iZXIgb3JkZXJlZCBsaXN0IGl0ZW1zIHVwIGZyb20gYHN0YXJ0YC4gQGRlZmF1bHQgdHJ1ZSAqL1xuICBpbmNyZW1lbnRMaXN0TWFya2VyPzogYm9vbGVhblxuICAvKiogSG93IGxpc3QgaXRlbSBjb250ZW50IGlzIGluZGVudGVkOiBgb25lYCwgYHRhYmAgb3IgYG1peGVkYC4gKi9cbiAgbGlzdEl0ZW1JbmRlbnQ/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBUaGUgbWFya2VyIG9mIHRpdGxlczogYFwiYCBvciBgJ2AuICovXG4gIHF1b3RlPzogc3RyaW5nIHwgbnVsbFxuICAvKiogV3JpdGUgbGlua3MgYXMgcmVzb3VyY2VzIGV2ZW4gd2hlcmUgYW4gYXV0b2xpbmsgd291bGQgZG8uIEBkZWZhdWx0IGZhbHNlICovXG4gIHJlc291cmNlTGluaz86IGJvb2xlYW5cbiAgLyoqIFRoZSBtYXJrZXIgb2YgdGhlbWF0aWMgYnJlYWtzOiBgKmAsIGAtYCBvciBgX2AuICovXG4gIHJ1bGU/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBIb3cgbWFueSBtYXJrZXJzIGEgdGhlbWF0aWMgYnJlYWsgaGFzLCAzIG9yIG1vcmUuICovXG4gIHJ1bGVSZXBldGl0aW9uPzogbnVtYmVyIHwgbnVsbFxuICAvKiogUHV0IHNwYWNlcyBiZXR3ZWVuIHRoZSBtYXJrZXJzIG9mIGEgdGhlbWF0aWMgYnJlYWsuIEBkZWZhdWx0IGZhbHNlICovXG4gIHJ1bGVTcGFjZXM/OiBib29sZWFuXG4gIC8qKiBXcml0ZSBoZWFkaW5ncyBvZiByYW5rIDEgYW5kIDIgYXMgc2V0ZXh0IGhlYWRpbmdzLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBzZXRleHQ/OiBib29sZWFuXG4gIC8qKiBUaGUgbWFya2VyIG9mIHN0cm9uZzogYCpgIG9yIGBfYC4gKi9cbiAgc3Ryb25nPzogc3RyaW5nIHwgbnVsbFxuICAvKiogSm9pbiBkZWZpbml0aW9ucyB3aXRoIG5vIGJsYW5rIGxpbmUgYmV0d2VlbiB0aGVtLiBAZGVmYXVsdCBmYWxzZSAqL1xuICB0aWdodERlZmluaXRpb25zPzogYm9vbGVhblxuICAvKiogRXh0cmEgcGF0dGVybnMgb2YgY2hhcmFjdGVycyB0byBlc2NhcGUuICovXG4gIHVuc2FmZT86IFVuc2FmZVBhdHRlcm5bXVxufVxuXG4vKiogQSBjaGFyYWN0ZXIgdG8gZXNjYXBlIHdoZXJlIGl0IHdvdWxkIG90aGVyd2lzZSBzdGFydCBvciBlbmQgc3ludGF4LiAqL1xuZXhwb3J0IGludGVyZmFjZSBVbnNhZmVQYXR0ZXJuIHtcbiAgLyoqIFRoZSBjaGFyYWN0ZXIsIGVzY2FwZWQgYXMgYSByZWd1bGFyIGV4cHJlc3Npb24gd291bGQgbmVlZCBpdC4gQGRlZmF1bHQgXCJcIiAqL1xuICBjaGFyYWN0ZXI/OiBzdHJpbmdcbiAgLyoqIEEgcmVndWxhciBleHByZXNzaW9uIHRoYXQgbXVzdCBtYXRjaCByaWdodCBiZWZvcmUgdGhlIGNoYXJhY3Rlci4gKi9cbiAgYmVmb3JlPzogc3RyaW5nIHwgbnVsbFxuICAvKiogQSByZWd1bGFyIGV4cHJlc3Npb24gdGhhdCBtdXN0IG1hdGNoIHJpZ2h0IGFmdGVyIHRoZSBjaGFyYWN0ZXIuICovXG4gIGFmdGVyPzogc3RyaW5nIHwgbnVsbFxuICAvKiogT25seSBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lLCBhZnRlciBhbnkgaW5kZW50LiBAZGVmYXVsdCBmYWxzZSAqL1xuICBhdEJyZWFrPzogYm9vbGVhblxuICAvKiogT25seSBpbnNpZGUgb25lIG9mIHRoZXNlIGNvbnN0cnVjdHMuICovXG4gIGluQ29uc3RydWN0PzogTmFtZXMgfCBudWxsXG4gIC8qKiBOZXZlciBpbnNpZGUgb25lIG9mIHRoZXNlIGNvbnN0cnVjdHMuICovXG4gIG5vdEluQ29uc3RydWN0PzogTmFtZXMgfCBudWxsXG4gIC8qKiBPbmx5IGF0IHRoZSBzdGFydCBvZiBhIG5vZGUgcmlnaHQgYWZ0ZXIgb25lIG9mIHRoZXNlIG5vZGUgdHlwZXMuICovXG4gIGJlZm9yZU5vZGU/OiBOYW1lcyB8IG51bGxcbiAgLyoqIE9ubHkgYXQgdGhlIGVuZCBvZiBhIG5vZGUgcmlnaHQgYmVmb3JlIG9uZSBvZiB0aGVzZSBub2RlIHR5cGVzLiAqL1xuICBhZnRlck5vZGU/OiBOYW1lcyB8IG51bGxcbiAgLyoqIFJlYWQgYGJlZm9yZWAgYW5kIGBhZnRlcmAgd2l0aCBVbmljb2RlIGNsYXNzZXMgc3VjaCBhcyBgXFxwe0x9YC4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgdW5pY29kZT86IGJvb2xlYW5cbn1cblxuLyoqIGBtZC50b0h0bWxgOiBtZGFzdCBpbnRvIGhhc3Q7IG9wdGlvbnMgbmFtZWQgYXMgcmVtYXJrLXJlaHlwZSBuYW1lcyB0aGVtLiAqL1xuZXhwb3J0IGludGVyZmFjZSBUb0h0bWxPcHRpb25zIHtcbiAgLyoqIEtlZXAgcmF3IEhUTUwgaW4gdGhlIHRyZWUgaW5zdGVhZCBvZiBkcm9wcGluZyBpdC4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgYWxsb3dEYW5nZXJvdXNIdG1sPzogYm9vbGVhblxuICAvKiogV2hhdCBmb290bm90ZSBgaWRgcyBzdGFydCB3aXRoLCBzbyB0aGV5IGNhbm5vdCBjbG9iYmVyIHRoZSBwYWdlJ3M7IGB1c2VyLWNvbnRlbnQtYCB3aGVuIHVuc2V0LiAqL1xuICBjbG9iYmVyUHJlZml4Pzogc3RyaW5nIHwgbnVsbFxuICAvKiogVGhlIHRleHQgb2YgZWFjaCBmb290bm90ZSdzIGJhY2sgcmVmZXJlbmNlOyBg4oapYCwgbnVtYmVyZWQgZnJvbSB0aGUgc2Vjb25kLCB3aGVuIHVuc2V0LiAqL1xuICBmb290bm90ZUJhY2tDb250ZW50Pzogc3RyaW5nIHwgbnVsbFxuICAvKiogVGhlIGBhcmlhLWxhYmVsYCBvZiBlYWNoIGZvb3Rub3RlJ3MgYmFjayByZWZlcmVuY2U7IGBCYWNrIHRvIHJlZmVyZW5jZSAxYCBhbmQgc28gb24gd2hlbiB1bnNldC4gKi9cbiAgZm9vdG5vdGVCYWNrTGFiZWw/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBUaGUgaGVhZGluZyBvZiB0aGUgZm9vdG5vdGVzIHNlY3Rpb247IGBGb290bm90ZXNgIHdoZW4gdW5zZXQuICovXG4gIGZvb3Rub3RlTGFiZWw/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBUaGUgdGFnIG5hbWUgb2YgdGhlIGZvb3Rub3RlcyBzZWN0aW9uJ3MgaGVhZGluZzsgYGgyYCB3aGVuIHVuc2V0LiAqL1xuICBmb290bm90ZUxhYmVsVGFnTmFtZT86IHN0cmluZyB8IG51bGxcbiAgLyoqIE5vZGUgdHlwZXMgd2l0aG91dCBhIGhhbmRsZXIgdG8gY29weSBpbnRvIGhhc3QgYXMgdGhleSBhcmUsIHRoZWlyIGNoaWxkcmVuIGNvbnZlcnRlZC4gQGRlZmF1bHQgW10gKi9cbiAgcGFzc1Rocm91Z2g/OiBzdHJpbmdbXVxuICAvKiogQW4gYGFyaWEtbGFiZWxgIGZvciBlYWNoIHRhc2stbGlzdCBjaGVja2JveCwgc28gc2NyZWVuIHJlYWRlcnMgbmFtZSBpdDsgbm9uZSB3aGVuIGxlZnQgb3V0LCBhcyByZW1hcmstcmVoeXBlIHdyaXRlcyBub25lLiAqL1xuICB0YXNrTGlzdExhYmVscz86IFRhc2tMaXN0TGFiZWxzIHwgbnVsbFxufVxuXG4vKiogVGhlIGxhYmVscyBvZiB0YXNrLWxpc3QgY2hlY2tib3hlcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFza0xpc3RMYWJlbHMge1xuICAvKiogVGhlIGxhYmVsIG9mIGEgY2hlY2tlZCBib3gsIHN1Y2ggYXMgYENvbXBsZXRlZCB0YXNrYC4gKi9cbiAgY2hlY2tlZDogc3RyaW5nXG4gIC8qKiBUaGUgbGFiZWwgb2YgYW4gdW5jaGVja2VkIGJveCwgc3VjaCBhcyBgVGFza2AuICovXG4gIHVuY2hlY2tlZDogc3RyaW5nXG59XG5cbi8qKiBgbWQudG9OYXR1cmFsTGFuZ3VhZ2VgOiBtZGFzdCBpbnRvIG5sY3N0LCB0b2tlbml6ZWQgYnkgdGhlIHByb2Nlc3NvcidzIG5hdHVyYWwtbGFuZ3VhZ2UgcGFyc2VyOyBvcHRpb25zIG5hbWVkIGFzIHJlbWFyay1yZXRleHQgYW5kIG1kYXN0LXV0aWwtdG8tbmxjc3QgbmFtZSB0aGVtLiAqL1xuZXhwb3J0IGludGVyZmFjZSBUb05hdHVyYWxMYW5ndWFnZU9wdGlvbnMge1xuICAvKiogTm9kZSB0eXBlcyB0byBsZWF2ZSBvdXQsIGJlc2lkZXMgYHRhYmxlYCwgYHRhYmxlUm93YCBhbmQgYHRhYmxlQ2VsbGAuIEBkZWZhdWx0IFtdICovXG4gIGlnbm9yZT86IHN0cmluZ1tdXG4gIC8qKiBOb2RlIHR5cGVzIHRvIGtlZXAgYXMgb25lIGBTb3VyY2VOb2RlYCBvZiB0aGVpciBzb3VyY2UgdGV4dCwgYmVzaWRlcyBgaW5saW5lQ29kZWAuIEBkZWZhdWx0IFtdICovXG4gIHNvdXJjZT86IHN0cmluZ1tdXG59XG5cbi8qKiBUaGUgYG1kLnBhcnNlYCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2Uob3B0aW9ucz86IFBhcnNlT3B0aW9ucyk6IFBsdWdpbjxcIm1kLnBhcnNlXCIsIFBhcnNlT3B0aW9ucz4gJiBQYXJzZXI8Um9vdD4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcIm1kLnBhcnNlXCIgfVxuICByZXR1cm4geyBuYW1lOiBcIm1kLnBhcnNlXCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBtZC5kaXJlY3RpdmVgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkaXJlY3RpdmUob3B0aW9ucz86IERpcmVjdGl2ZU9wdGlvbnMpOiBQbHVnaW48XCJtZC5kaXJlY3RpdmVcIiwgRGlyZWN0aXZlT3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcIm1kLmRpcmVjdGl2ZVwiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJtZC5kaXJlY3RpdmVcIiwgb3B0aW9ucyB9XG59XG5cbi8qKiBUaGUgYG1kLmdmbWAgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdmbShvcHRpb25zPzogR2ZtT3B0aW9ucyk6IFBsdWdpbjxcIm1kLmdmbVwiLCBHZm1PcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwibWQuZ2ZtXCIgfVxuICByZXR1cm4geyBuYW1lOiBcIm1kLmdmbVwiLCBvcHRpb25zIH1cbn1cblxuLyoqIFRoZSBgbWQuZGVmaW5pdGlvbkxpc3RgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbml0aW9uTGlzdCgpOiBQbHVnaW48XCJtZC5kZWZpbml0aW9uTGlzdFwiPiB7XG4gIHJldHVybiB7IG5hbWU6IFwibWQuZGVmaW5pdGlvbkxpc3RcIiB9XG59XG5cbi8qKiBUaGUgYG1kLm1hdGhgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXRoKG9wdGlvbnM/OiBNYXRoT3B0aW9ucyk6IFBsdWdpbjxcIm1kLm1hdGhcIiwgTWF0aE9wdGlvbnM+IHtcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgbmFtZTogXCJtZC5tYXRoXCIgfVxuICByZXR1cm4geyBuYW1lOiBcIm1kLm1hdGhcIiwgb3B0aW9ucyB9XG59XG5cbi8qKiBUaGUgYG1kLm1keGAgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1keChvcHRpb25zPzogTWR4T3B0aW9ucyk6IFBsdWdpbjxcIm1kLm1keFwiLCBNZHhPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwibWQubWR4XCIgfVxuICByZXR1cm4geyBuYW1lOiBcIm1kLm1keFwiLCBvcHRpb25zIH1cbn1cblxuLyoqIFRoZSBgbWQuZnJvbnRtYXR0ZXJgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmcm9udG1hdHRlcihvcHRpb25zPzogRnJvbnRtYXR0ZXJPcHRpb25zKTogUGx1Z2luPFwibWQuZnJvbnRtYXR0ZXJcIiwgRnJvbnRtYXR0ZXJPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwibWQuZnJvbnRtYXR0ZXJcIiB9XG4gIHJldHVybiB7IG5hbWU6IFwibWQuZnJvbnRtYXR0ZXJcIiwgb3B0aW9ucyB9XG59XG5cbi8qKiBUaGUgYG1kLmdlbW9qaWAgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbW9qaSgpOiBQbHVnaW48XCJtZC5nZW1vamlcIj4ge1xuICByZXR1cm4geyBuYW1lOiBcIm1kLmdlbW9qaVwiIH1cbn1cblxuLyoqIFRoZSBgbWQuY29tcG9uZW50YCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gY29tcG9uZW50KG9wdGlvbnM/OiBDb21wb25lbnRPcHRpb25zKTogUGx1Z2luPFwibWQuY29tcG9uZW50XCIsIENvbXBvbmVudE9wdGlvbnM+IHtcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgbmFtZTogXCJtZC5jb21wb25lbnRcIiB9XG4gIHJldHVybiB7IG5hbWU6IFwibWQuY29tcG9uZW50XCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBtZC5wYWNrYWdlQ29tbWFuZGAgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhY2thZ2VDb21tYW5kKG9wdGlvbnM/OiBQYWNrYWdlQ29tbWFuZE9wdGlvbnMpOiBQbHVnaW48XCJtZC5wYWNrYWdlQ29tbWFuZFwiLCBQYWNrYWdlQ29tbWFuZE9wdGlvbnM+IHtcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgbmFtZTogXCJtZC5wYWNrYWdlQ29tbWFuZFwiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJtZC5wYWNrYWdlQ29tbWFuZFwiLCBvcHRpb25zIH1cbn1cblxuLyoqIFRoZSBgbWQuaGVhZGluZ0lkYCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gaGVhZGluZ0lkKG9wdGlvbnM/OiBIZWFkaW5nSWRPcHRpb25zKTogUGx1Z2luPFwibWQuaGVhZGluZ0lkXCIsIEhlYWRpbmdJZE9wdGlvbnM+IHtcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgbmFtZTogXCJtZC5oZWFkaW5nSWRcIiB9XG4gIHJldHVybiB7IG5hbWU6IFwibWQuaGVhZGluZ0lkXCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBtZC5wYXRoUmV3cml0ZWAgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhdGhSZXdyaXRlKG9wdGlvbnM/OiBQYXRoUmV3cml0ZU9wdGlvbnMpOiBQbHVnaW48XCJtZC5wYXRoUmV3cml0ZVwiLCBQYXRoUmV3cml0ZU9wdGlvbnM+IHtcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgbmFtZTogXCJtZC5wYXRoUmV3cml0ZVwiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJtZC5wYXRoUmV3cml0ZVwiLCBvcHRpb25zIH1cbn1cblxuLyoqIFRoZSBgbWQuc2hpZnRIZWFkaW5nYCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gc2hpZnRIZWFkaW5nKG9wdGlvbnM/OiBTaGlmdEhlYWRpbmdPcHRpb25zKTogUGx1Z2luPFwibWQuc2hpZnRIZWFkaW5nXCIsIFNoaWZ0SGVhZGluZ09wdGlvbnM+IHtcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgbmFtZTogXCJtZC5zaGlmdEhlYWRpbmdcIiB9XG4gIHJldHVybiB7IG5hbWU6IFwibWQuc2hpZnRIZWFkaW5nXCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBtZC5zdHJpcGAgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmlwKG9wdGlvbnM/OiBTdHJpcE9wdGlvbnMpOiBQbHVnaW48XCJtZC5zdHJpcFwiLCBTdHJpcE9wdGlvbnM+IHtcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgbmFtZTogXCJtZC5zdHJpcFwiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJtZC5zdHJpcFwiLCBvcHRpb25zIH1cbn1cblxuLyoqIFRoZSBgbWQudG9jYCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gdG9jKG9wdGlvbnM/OiBUb2NPcHRpb25zKTogUGx1Z2luPFwibWQudG9jXCIsIFRvY09wdGlvbnM+IHtcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgbmFtZTogXCJtZC50b2NcIiB9XG4gIHJldHVybiB7IG5hbWU6IFwibWQudG9jXCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBtZC5zdHJpbmdpZnlgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnkob3B0aW9ucz86IFN0cmluZ2lmeU9wdGlvbnMpOiBQbHVnaW48XCJtZC5zdHJpbmdpZnlcIiwgU3RyaW5naWZ5T3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcIm1kLnN0cmluZ2lmeVwiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJtZC5zdHJpbmdpZnlcIiwgb3B0aW9ucyB9XG59XG5cbi8qKiBUaGUgYG1kLnRvSHRtbGAgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSHRtbChvcHRpb25zPzogVG9IdG1sT3B0aW9ucyk6IFBsdWdpbjxcIm1kLnRvSHRtbFwiLCBUb0h0bWxPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwibWQudG9IdG1sXCIgfVxuICByZXR1cm4geyBuYW1lOiBcIm1kLnRvSHRtbFwiLCBvcHRpb25zIH1cbn1cblxuLyoqIFRoZSBgbWQudG9OYXR1cmFsTGFuZ3VhZ2VgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b05hdHVyYWxMYW5ndWFnZShvcHRpb25zPzogVG9OYXR1cmFsTGFuZ3VhZ2VPcHRpb25zKTogUGx1Z2luPFwibWQudG9OYXR1cmFsTGFuZ3VhZ2VcIiwgVG9OYXR1cmFsTGFuZ3VhZ2VPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwibWQudG9OYXR1cmFsTGFuZ3VhZ2VcIiB9XG4gIHJldHVybiB7IG5hbWU6IFwibWQudG9OYXR1cmFsTGFuZ3VhZ2VcIiwgb3B0aW9ucyB9XG59XG4iXX0=
|
package/build/generated/nl.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Root } from "nlcst";
|
|
2
|
+
import type { Parser, Plugin } from "../models/plugin.ts";
|
|
2
3
|
/** `nl.parse`: natural language into nlcst. */
|
|
3
4
|
export interface ParseOptions {
|
|
4
5
|
/** The rules sentences and words are found by. */
|
|
@@ -76,7 +77,7 @@ export interface ContractionsOptions {
|
|
|
76
77
|
straight?: boolean | null;
|
|
77
78
|
}
|
|
78
79
|
/** The `nl.parse` plugin. */
|
|
79
|
-
export declare function parse(options?: ParseOptions): Plugin<"nl.parse", ParseOptions>;
|
|
80
|
+
export declare function parse(options?: ParseOptions): Plugin<"nl.parse", ParseOptions> & Parser<Root>;
|
|
80
81
|
/** The `nl.equality` plugin. */
|
|
81
82
|
export declare function equality(options?: EqualityOptions): Plugin<"nl.equality", EqualityOptions>;
|
|
82
83
|
/** The `nl.passive` plugin. */
|
package/build/generated/nl.js
CHANGED
|
@@ -59,4 +59,4 @@ export function contractions(options) {
|
|
|
59
59
|
export function indefiniteArticle() {
|
|
60
60
|
return { name: "nl.indefiniteArticle" };
|
|
61
61
|
}
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9nZW5lcmF0ZWQvbmwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0VBQStFO0FBK0YvRSw2QkFBNkI7QUFDN0IsTUFBTSxVQUFVLEtBQUssQ0FBQyxPQUFzQjtJQUMxQyxJQUFJLE9BQU8sS0FBSyxTQUFTO1FBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQTtJQUN0RCxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUN0QyxDQUFDO0FBRUQsZ0NBQWdDO0FBQ2hDLE1BQU0sVUFBVSxRQUFRLENBQUMsT0FBeUI7SUFDaEQsSUFBSSxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLENBQUE7SUFDekQsT0FBTyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLENBQUE7QUFDekMsQ0FBQztBQUVELCtCQUErQjtBQUMvQixNQUFNLFVBQVUsT0FBTyxDQUFDLE9BQXdCO0lBQzlDLElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxDQUFBO0lBQ3hELE9BQU8sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxDQUFBO0FBQ3hDLENBQUM7QUFFRCxtQ0FBbUM7QUFDbkMsTUFBTSxVQUFVLFdBQVcsQ0FBQyxPQUE0QjtJQUN0RCxJQUFJLE9BQU8sS0FBSyxTQUFTO1FBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxDQUFBO0lBQzVELE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLENBQUE7QUFDNUMsQ0FBQztBQUVELHFDQUFxQztBQUNyQyxNQUFNLFVBQVUsYUFBYTtJQUMzQixPQUFPLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLENBQUE7QUFDckMsQ0FBQztBQUVELHVDQUF1QztBQUN2QyxNQUFNLFVBQVUsZUFBZSxDQUFDLE9BQWdDO0lBQzlELElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLG9CQUFvQixFQUFFLENBQUE7SUFDaEUsT0FBTyxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUNoRCxDQUFDO0FBRUQsaUNBQWlDO0FBQ2pDLE1BQU0sVUFBVSxTQUFTO0lBQ3ZCLE9BQU8sRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLENBQUE7QUFDakMsQ0FBQztBQUVELG1DQUFtQztBQUNuQyxNQUFNLFVBQVUsV0FBVyxDQUFDLE9BQTRCO0lBQ3RELElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLENBQUE7SUFDNUQsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUM1QyxDQUFDO0FBRUQsOEJBQThCO0FBQzlCLE1BQU0sVUFBVSxNQUFNLENBQUMsT0FBdUI7SUFDNUMsSUFBSSxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUE7SUFDdkQsT0FBTyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLENBQUE7QUFDdkMsQ0FBQztBQUVELG9DQUFvQztBQUNwQyxNQUFNLFVBQVUsWUFBWSxDQUFDLE9BQTZCO0lBQ3hELElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLENBQUE7SUFDN0QsT0FBTyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUM3QyxDQUFDO0FBRUQseUNBQXlDO0FBQ3pDLE1BQU0sVUFBVSxpQkFBaUI7SUFDL0IsT0FBTyxFQUFFLElBQUksRUFBRSxzQkFBc0IsRUFBRSxDQUFBO0FBQ3pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHZW5lcmF0ZWQgYnkgYHBucG0gZ2VuZXJhdGU6YmluZGluZ3NgIGZyb20gdGhlIGNyYXRlJ3MgcGx1Z2luczsgZG8gbm90IGVkaXQuXG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luIH0gZnJvbSBcIi4uL21vZGVscy9wbHVnaW4udHNcIlxuXG4vKiogYG5sLnBhcnNlYDogbmF0dXJhbCBsYW5ndWFnZSBpbnRvIG5sY3N0LiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXJzZU9wdGlvbnMge1xuICAvKiogVGhlIHJ1bGVzIHNlbnRlbmNlcyBhbmQgd29yZHMgYXJlIGZvdW5kIGJ5LiAqL1xuICBsYW5ndWFnZT86IExhbmd1YWdlXG59XG5cbi8qKiBUaGUgbGFuZ3VhZ2UgYG5sLnBhcnNlYCByZWFkczogcGFyc2UtbGF0aW4ncyBydWxlcywgb3IgcGFyc2UtZW5nbGlzaCdzIG9uIHRvcCBvZiB0aGVtLiAqL1xuZXhwb3J0IHR5cGUgTGFuZ3VhZ2UgPSBcImxhdGluXCIgfCBcImVuZ2xpc2hcIlxuXG4vKiogYG5sLmVxdWFsaXR5YDogd2FybmluZ3MgYWJvdXQgaW5zZW5zaXRpdmUsIGluY29uc2lkZXJhdGUgd29yZGluZywgYXMgcmV0ZXh0LWVxdWFsaXR5OyBvcHRpb25zIGFyZSByZXRleHQtZXF1YWxpdHkncy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXF1YWxpdHlPcHRpb25zIHtcbiAgLyoqIFBocmFzZXMgbm90IHRvIHdhcm4gYWJvdXQuICovXG4gIGlnbm9yZT86IHN0cmluZ1tdIHwgbnVsbFxuICAvKiogV2hldGhlciBhIHBocmFzZSB1c2VkIG5leHQgdG8gaXRzIGNvdW50ZXJwYXJ0IChgaGUgb3Igc2hlYCkgaXMgZmluZS4gKi9cbiAgYmluYXJ5PzogYm9vbGVhbiB8IG51bGxcbn1cblxuLyoqIGBubC5wYXNzaXZlYDogd2FybmluZ3MgYWJvdXQgdGhlIHBhc3NpdmUgdm9pY2UsIGFzIHJldGV4dC1wYXNzaXZlOyBvcHRpb25zIGFyZSByZXRleHQtcGFzc2l2ZSdzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXNzaXZlT3B0aW9ucyB7XG4gIC8qKiBQYXJ0aWNpcGxlcyBub3QgdG8gd2FybiBhYm91dC4gKi9cbiAgaWdub3JlPzogc3RyaW5nW10gfCBudWxsXG59XG5cbi8qKiBgbmwucmVhZGFiaWxpdHlgOiB3YXJuaW5ncyBhYm91dCBzZW50ZW5jZXMgdG9vIGhhcmQgdG8gcmVhZCwgYXMgcmV0ZXh0LXJlYWRhYmlsaXR5OyBvcHRpb25zIGFyZSByZXRleHQtcmVhZGFiaWxpdHkncy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVhZGFiaWxpdHlPcHRpb25zIHtcbiAgLyoqIFRoZSBhZ2Ugb2YgdGhlIHRhcmdldCBhdWRpZW5jZTogMTYgYnkgZGVmYXVsdC4gKi9cbiAgYWdlPzogbnVtYmVyIHwgbnVsbFxuICAvKiogVGhlIHNoYXJlIG9mIGFsZ29yaXRobXMgdGhhdCBtdXN0IGZpbmQgYSBzZW50ZW5jZSB0b28gaGFyZDogNC83IGJ5IGRlZmF1bHQuICovXG4gIHRocmVzaG9sZD86IG51bWJlciB8IG51bGxcbiAgLyoqIFRoZSBmZXdlc3Qgd29yZHMgYSBzZW50ZW5jZSBuZWVkcyB0byBiZSBjaGVja2VkOiA1IGJ5IGRlZmF1bHQuICovXG4gIG1pbldvcmRzPzogbnVtYmVyIHwgbnVsbFxufVxuXG4vKiogYG5sLnNlbnRlbmNlU3BhY2luZ2A6IHdhcm5pbmdzIGFib3V0IHRoZSBzcGFjZXMgYmV0d2VlbiBzZW50ZW5jZXMsIGFzIHJldGV4dC1zZW50ZW5jZS1zcGFjaW5nOyBvcHRpb25zIGFyZSByZXRleHQtc2VudGVuY2Utc3BhY2luZydzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZW50ZW5jZVNwYWNpbmdPcHRpb25zIHtcbiAgLyoqIFRoZSBzcGFjaW5nIGV4cGVjdGVkIGJldHdlZW4gc2VudGVuY2VzOiBgMWAgb3IgYFwic3BhY2VcImAgKHRoZSBkZWZhdWx0KSwgYDJgIG9yIGBcImRvdWJsZS1zcGFjZVwiYCwgYDBgIG9yIGBcIm5ld2xpbmVcImAuICovXG4gIHByZWZlcnJlZD86IFNwYWNpbmcgfCBudWxsXG59XG5cbi8qKiBBIHNwYWNpbmcgYmV0d2VlbiBzZW50ZW5jZXMsIGFzIGEgY291bnQgb2Ygc3BhY2VzIG9yIGJ5IG5hbWUuICovXG5leHBvcnQgdHlwZSBTcGFjaW5nID0gbnVtYmVyIHwgc3RyaW5nXG5cbi8qKiBgbmwuc21hcnR5cGFudHNgOiBzdHJhaWdodCBxdW90ZXMsIGRhc2hlcywgZG90cyBhbmQgYmFja3RpY2tzIGludG8gdHlwb2dyYXBoaWMgb25lczsgb3B0aW9ucyBhcyByZXRleHQtc21hcnR5cGFudHMgdGFrZXMgdGhlbS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU21hcnR5cGFudHNPcHRpb25zIHtcbiAgLyoqIFR1cm4gZG91YmxlIGJhY2t0aWNrcyBhbmQgZG91YmxlIHN0cmFpZ2h0IHNpbmdsZSBxdW90ZXMgaW50byBkb3VibGUgcXVvdGVzOyBgYWxsYCB0dXJucyBzaW5nbGUgb25lcyBpbnRvIHNpbmdsZSBxdW90ZXMgdG9vLCBhbmQgbmVlZHMgYHF1b3RlczogZmFsc2VgLiAqL1xuICBiYWNrdGlja3M/OiBCYWNrdGlja3NcbiAgLyoqIFRoZSBjbG9zaW5nIHF1b3RlcyB0byB1c2U6IGDigJ1gIGFuZCBg4oCZYCBieSBkZWZhdWx0LiAqL1xuICBjbG9zaW5nUXVvdGVzPzogUXVvdGVDaGFyYWN0ZXJzIHwgbnVsbFxuICAvKiogVHVybiB0d28gZGFzaGVzIGludG8gYW4gZW0gZGFzaDsgYG9sZHNjaG9vbGAgYW5kIGBpbnZlcnRlZGAgdHJlYXQgdGhyZWUgdG9vLiAqL1xuICBkYXNoZXM/OiBEYXNoZXNcbiAgLyoqIFR1cm4gdGhyZWUgZG90cyBpbnRvIGFuIGVsbGlwc2lzLCB3aXRoIHNwYWNlcyBiZXR3ZWVuIHRoZW0gb3Igd2l0aG91dC4gKi9cbiAgZWxsaXBzZXM/OiBFbGxpcHNlc1xuICAvKiogVGhlIG9wZW5pbmcgcXVvdGVzIHRvIHVzZTogYOKAnGAgYW5kIGDigJhgIGJ5IGRlZmF1bHQuICovXG4gIG9wZW5pbmdRdW90ZXM/OiBRdW90ZUNoYXJhY3RlcnMgfCBudWxsXG4gIC8qKiBUdXJuIHN0cmFpZ2h0IHF1b3RlcyBpbnRvIHNtYXJ0IG9uZXMuIEBkZWZhdWx0IHRydWUgKi9cbiAgcXVvdGVzPzogYm9vbGVhbiB8IG51bGxcbn1cblxuZXhwb3J0IHR5cGUgQmFja3RpY2tzID0gYm9vbGVhbiB8IFwiYWxsXCJcblxuLyoqIFRoZSBxdW90ZSBjaGFyYWN0ZXJzIHRvIHVzZSBmb3IgZG91YmxlIGFuZCBzaW5nbGUgcXVvdGVzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBRdW90ZUNoYXJhY3RlcnMge1xuICBkb3VibGU6IHN0cmluZ1xuICBzaW5nbGU6IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBEYXNoZXMgPSBib29sZWFuIHwgXCJvbGRzY2hvb2xcIiB8IFwiaW52ZXJ0ZWRcIlxuXG5leHBvcnQgdHlwZSBFbGxpcHNlcyA9IGJvb2xlYW4gfCBcInNwYWNlZFwiIHwgXCJ1bnNwYWNlZFwiXG5cbi8qKiBgbmwucXVvdGVzYDogY2hlY2sgdGhhdCBxdW90ZXMgYW5kIGFwb3N0cm9waGVzIGFyZSBzdHJhaWdodCBvciBzbWFydCwgYXMgcHJlZmVycmVkLCBhdCBlYWNoIGxldmVsIG9mIG5lc3Rpbmc7IG9wdGlvbnMgYXMgcmV0ZXh0LXF1b3RlcyB0YWtlcyB0aGVtLiAqL1xuZXhwb3J0IGludGVyZmFjZSBRdW90ZXNPcHRpb25zIHtcbiAgLyoqIFRoZSBzdHlsZSBvZiBxdW90ZXMgYW5kIGFwb3N0cm9waGVzIHRvIHByZWZlcjogYHNtYXJ0YCBieSBkZWZhdWx0LiAqL1xuICBwcmVmZXJyZWQ/OiBRdW90ZVN0eWxlIHwgbnVsbFxuICAvKiogU21hcnQgcXVvdGVzIGJ5IG5lc3RpbmcgbGV2ZWwsIGVhY2ggb25lIGNoYXJhY3RlciBvciBhbiBvcGVuaW5nIGFuZCBjbG9zaW5nIHBhaXI6IGBbXCLigJzigJ1cIiwgXCLigJjigJlcIl1gIGJ5IGRlZmF1bHQuICovXG4gIHNtYXJ0Pzogc3RyaW5nW10gfCBudWxsXG4gIC8qKiBTdHJhaWdodCBxdW90ZXMgYnkgbmVzdGluZyBsZXZlbDogYFtcIlxcXCJcIiwgXCInXCJdYCBieSBkZWZhdWx0LiAqL1xuICBzdHJhaWdodD86IHN0cmluZ1tdIHwgbnVsbFxufVxuXG4vKiogQSBzdHlsZSBvZiBxdW90ZXM6IHN0cmFpZ2h0IChgXCJgKSBvciBzbWFydCAoYOKAnOKAnWApLiAqL1xuZXhwb3J0IHR5cGUgUXVvdGVTdHlsZSA9IFwic21hcnRcIiB8IFwic3RyYWlnaHRcIlxuXG4vKiogYG5sLmNvbnRyYWN0aW9uc2A6IGNoZWNrIGFwb3N0cm9waGVzIGluIGNvbnRyYWN0aW9ucywgc3VjaCBhcyBgZG9u4oCZdGA7IG9wdGlvbnMgYXMgcmV0ZXh0LWNvbnRyYWN0aW9ucyB0YWtlcyB0aGVtLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb250cmFjdGlvbnNPcHRpb25zIHtcbiAgLyoqIEFsc28gY2hlY2sgY29udHJhY3Rpb25zIHdyaXR0ZW4gYXMgbGl0ZXJhbHMsIHN1Y2ggYXMgYOKAnGhhc2504oCdYC4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgYWxsb3dMaXRlcmFscz86IGJvb2xlYW4gfCBudWxsXG4gIC8qKiBFeHBlY3Qgc3RyYWlnaHQgYXBvc3Ryb3BoZXMgKGAnYCkgaW5zdGVhZCBvZiBzbWFydCBvbmVzIChg4oCZYCkuIEBkZWZhdWx0IGZhbHNlICovXG4gIHN0cmFpZ2h0PzogYm9vbGVhbiB8IG51bGxcbn1cblxuLyoqIFRoZSBgbmwucGFyc2VgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZShvcHRpb25zPzogUGFyc2VPcHRpb25zKTogUGx1Z2luPFwibmwucGFyc2VcIiwgUGFyc2VPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwibmwucGFyc2VcIiB9XG4gIHJldHVybiB7IG5hbWU6IFwibmwucGFyc2VcIiwgb3B0aW9ucyB9XG59XG5cbi8qKiBUaGUgYG5sLmVxdWFsaXR5YCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gZXF1YWxpdHkob3B0aW9ucz86IEVxdWFsaXR5T3B0aW9ucyk6IFBsdWdpbjxcIm5sLmVxdWFsaXR5XCIsIEVxdWFsaXR5T3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcIm5sLmVxdWFsaXR5XCIgfVxuICByZXR1cm4geyBuYW1lOiBcIm5sLmVxdWFsaXR5XCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBubC5wYXNzaXZlYCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gcGFzc2l2ZShvcHRpb25zPzogUGFzc2l2ZU9wdGlvbnMpOiBQbHVnaW48XCJubC5wYXNzaXZlXCIsIFBhc3NpdmVPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwibmwucGFzc2l2ZVwiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJubC5wYXNzaXZlXCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBubC5yZWFkYWJpbGl0eWAgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlYWRhYmlsaXR5KG9wdGlvbnM/OiBSZWFkYWJpbGl0eU9wdGlvbnMpOiBQbHVnaW48XCJubC5yZWFkYWJpbGl0eVwiLCBSZWFkYWJpbGl0eU9wdGlvbnM+IHtcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgbmFtZTogXCJubC5yZWFkYWJpbGl0eVwiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJubC5yZWFkYWJpbGl0eVwiLCBvcHRpb25zIH1cbn1cblxuLyoqIFRoZSBgbmwucmVwZWF0ZWRXb3Jkc2AgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlcGVhdGVkV29yZHMoKTogUGx1Z2luPFwibmwucmVwZWF0ZWRXb3Jkc1wiPiB7XG4gIHJldHVybiB7IG5hbWU6IFwibmwucmVwZWF0ZWRXb3Jkc1wiIH1cbn1cblxuLyoqIFRoZSBgbmwuc2VudGVuY2VTcGFjaW5nYCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gc2VudGVuY2VTcGFjaW5nKG9wdGlvbnM/OiBTZW50ZW5jZVNwYWNpbmdPcHRpb25zKTogUGx1Z2luPFwibmwuc2VudGVuY2VTcGFjaW5nXCIsIFNlbnRlbmNlU3BhY2luZ09wdGlvbnM+IHtcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgbmFtZTogXCJubC5zZW50ZW5jZVNwYWNpbmdcIiB9XG4gIHJldHVybiB7IG5hbWU6IFwibmwuc2VudGVuY2VTcGFjaW5nXCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBubC5zdHJpbmdpZnlgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnkoKTogUGx1Z2luPFwibmwuc3RyaW5naWZ5XCI+IHtcbiAgcmV0dXJuIHsgbmFtZTogXCJubC5zdHJpbmdpZnlcIiB9XG59XG5cbi8qKiBUaGUgYG5sLnNtYXJ0eXBhbnRzYCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gc21hcnR5cGFudHMob3B0aW9ucz86IFNtYXJ0eXBhbnRzT3B0aW9ucyk6IFBsdWdpbjxcIm5sLnNtYXJ0eXBhbnRzXCIsIFNtYXJ0eXBhbnRzT3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcIm5sLnNtYXJ0eXBhbnRzXCIgfVxuICByZXR1cm4geyBuYW1lOiBcIm5sLnNtYXJ0eXBhbnRzXCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBubC5xdW90ZXNgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBxdW90ZXMob3B0aW9ucz86IFF1b3Rlc09wdGlvbnMpOiBQbHVnaW48XCJubC5xdW90ZXNcIiwgUXVvdGVzT3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcIm5sLnF1b3Rlc1wiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJubC5xdW90ZXNcIiwgb3B0aW9ucyB9XG59XG5cbi8qKiBUaGUgYG5sLmNvbnRyYWN0aW9uc2AgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnRyYWN0aW9ucyhvcHRpb25zPzogQ29udHJhY3Rpb25zT3B0aW9ucyk6IFBsdWdpbjxcIm5sLmNvbnRyYWN0aW9uc1wiLCBDb250cmFjdGlvbnNPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwibmwuY29udHJhY3Rpb25zXCIgfVxuICByZXR1cm4geyBuYW1lOiBcIm5sLmNvbnRyYWN0aW9uc1wiLCBvcHRpb25zIH1cbn1cblxuLyoqIFRoZSBgbmwuaW5kZWZpbml0ZUFydGljbGVgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmRlZmluaXRlQXJ0aWNsZSgpOiBQbHVnaW48XCJubC5pbmRlZmluaXRlQXJ0aWNsZVwiPiB7XG4gIHJldHVybiB7IG5hbWU6IFwibmwuaW5kZWZpbml0ZUFydGljbGVcIiB9XG59XG4iXX0=
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9nZW5lcmF0ZWQvbmwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0VBQStFO0FBZ0cvRSw2QkFBNkI7QUFDN0IsTUFBTSxVQUFVLEtBQUssQ0FBQyxPQUFzQjtJQUMxQyxJQUFJLE9BQU8sS0FBSyxTQUFTO1FBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQTtJQUN0RCxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUN0QyxDQUFDO0FBRUQsZ0NBQWdDO0FBQ2hDLE1BQU0sVUFBVSxRQUFRLENBQUMsT0FBeUI7SUFDaEQsSUFBSSxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLENBQUE7SUFDekQsT0FBTyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLENBQUE7QUFDekMsQ0FBQztBQUVELCtCQUErQjtBQUMvQixNQUFNLFVBQVUsT0FBTyxDQUFDLE9BQXdCO0lBQzlDLElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxDQUFBO0lBQ3hELE9BQU8sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxDQUFBO0FBQ3hDLENBQUM7QUFFRCxtQ0FBbUM7QUFDbkMsTUFBTSxVQUFVLFdBQVcsQ0FBQyxPQUE0QjtJQUN0RCxJQUFJLE9BQU8sS0FBSyxTQUFTO1FBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxDQUFBO0lBQzVELE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLENBQUE7QUFDNUMsQ0FBQztBQUVELHFDQUFxQztBQUNyQyxNQUFNLFVBQVUsYUFBYTtJQUMzQixPQUFPLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLENBQUE7QUFDckMsQ0FBQztBQUVELHVDQUF1QztBQUN2QyxNQUFNLFVBQVUsZUFBZSxDQUFDLE9BQWdDO0lBQzlELElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLG9CQUFvQixFQUFFLENBQUE7SUFDaEUsT0FBTyxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUNoRCxDQUFDO0FBRUQsaUNBQWlDO0FBQ2pDLE1BQU0sVUFBVSxTQUFTO0lBQ3ZCLE9BQU8sRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLENBQUE7QUFDakMsQ0FBQztBQUVELG1DQUFtQztBQUNuQyxNQUFNLFVBQVUsV0FBVyxDQUFDLE9BQTRCO0lBQ3RELElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLENBQUE7SUFDNUQsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUM1QyxDQUFDO0FBRUQsOEJBQThCO0FBQzlCLE1BQU0sVUFBVSxNQUFNLENBQUMsT0FBdUI7SUFDNUMsSUFBSSxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUE7SUFDdkQsT0FBTyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLENBQUE7QUFDdkMsQ0FBQztBQUVELG9DQUFvQztBQUNwQyxNQUFNLFVBQVUsWUFBWSxDQUFDLE9BQTZCO0lBQ3hELElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLENBQUE7SUFDN0QsT0FBTyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUM3QyxDQUFDO0FBRUQseUNBQXlDO0FBQ3pDLE1BQU0sVUFBVSxpQkFBaUI7SUFDL0IsT0FBTyxFQUFFLElBQUksRUFBRSxzQkFBc0IsRUFBRSxDQUFBO0FBQ3pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHZW5lcmF0ZWQgYnkgYHBucG0gZ2VuZXJhdGU6YmluZGluZ3NgIGZyb20gdGhlIGNyYXRlJ3MgcGx1Z2luczsgZG8gbm90IGVkaXQuXG5cbmltcG9ydCB0eXBlIHsgUm9vdCB9IGZyb20gXCJubGNzdFwiXG5pbXBvcnQgdHlwZSB7IFBhcnNlciwgUGx1Z2luIH0gZnJvbSBcIi4uL21vZGVscy9wbHVnaW4udHNcIlxuXG4vKiogYG5sLnBhcnNlYDogbmF0dXJhbCBsYW5ndWFnZSBpbnRvIG5sY3N0LiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXJzZU9wdGlvbnMge1xuICAvKiogVGhlIHJ1bGVzIHNlbnRlbmNlcyBhbmQgd29yZHMgYXJlIGZvdW5kIGJ5LiAqL1xuICBsYW5ndWFnZT86IExhbmd1YWdlXG59XG5cbi8qKiBUaGUgbGFuZ3VhZ2UgYG5sLnBhcnNlYCByZWFkczogcGFyc2UtbGF0aW4ncyBydWxlcywgb3IgcGFyc2UtZW5nbGlzaCdzIG9uIHRvcCBvZiB0aGVtLiAqL1xuZXhwb3J0IHR5cGUgTGFuZ3VhZ2UgPSBcImxhdGluXCIgfCBcImVuZ2xpc2hcIlxuXG4vKiogYG5sLmVxdWFsaXR5YDogd2FybmluZ3MgYWJvdXQgaW5zZW5zaXRpdmUsIGluY29uc2lkZXJhdGUgd29yZGluZywgYXMgcmV0ZXh0LWVxdWFsaXR5OyBvcHRpb25zIGFyZSByZXRleHQtZXF1YWxpdHkncy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXF1YWxpdHlPcHRpb25zIHtcbiAgLyoqIFBocmFzZXMgbm90IHRvIHdhcm4gYWJvdXQuICovXG4gIGlnbm9yZT86IHN0cmluZ1tdIHwgbnVsbFxuICAvKiogV2hldGhlciBhIHBocmFzZSB1c2VkIG5leHQgdG8gaXRzIGNvdW50ZXJwYXJ0IChgaGUgb3Igc2hlYCkgaXMgZmluZS4gKi9cbiAgYmluYXJ5PzogYm9vbGVhbiB8IG51bGxcbn1cblxuLyoqIGBubC5wYXNzaXZlYDogd2FybmluZ3MgYWJvdXQgdGhlIHBhc3NpdmUgdm9pY2UsIGFzIHJldGV4dC1wYXNzaXZlOyBvcHRpb25zIGFyZSByZXRleHQtcGFzc2l2ZSdzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXNzaXZlT3B0aW9ucyB7XG4gIC8qKiBQYXJ0aWNpcGxlcyBub3QgdG8gd2FybiBhYm91dC4gKi9cbiAgaWdub3JlPzogc3RyaW5nW10gfCBudWxsXG59XG5cbi8qKiBgbmwucmVhZGFiaWxpdHlgOiB3YXJuaW5ncyBhYm91dCBzZW50ZW5jZXMgdG9vIGhhcmQgdG8gcmVhZCwgYXMgcmV0ZXh0LXJlYWRhYmlsaXR5OyBvcHRpb25zIGFyZSByZXRleHQtcmVhZGFiaWxpdHkncy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVhZGFiaWxpdHlPcHRpb25zIHtcbiAgLyoqIFRoZSBhZ2Ugb2YgdGhlIHRhcmdldCBhdWRpZW5jZTogMTYgYnkgZGVmYXVsdC4gKi9cbiAgYWdlPzogbnVtYmVyIHwgbnVsbFxuICAvKiogVGhlIHNoYXJlIG9mIGFsZ29yaXRobXMgdGhhdCBtdXN0IGZpbmQgYSBzZW50ZW5jZSB0b28gaGFyZDogNC83IGJ5IGRlZmF1bHQuICovXG4gIHRocmVzaG9sZD86IG51bWJlciB8IG51bGxcbiAgLyoqIFRoZSBmZXdlc3Qgd29yZHMgYSBzZW50ZW5jZSBuZWVkcyB0byBiZSBjaGVja2VkOiA1IGJ5IGRlZmF1bHQuICovXG4gIG1pbldvcmRzPzogbnVtYmVyIHwgbnVsbFxufVxuXG4vKiogYG5sLnNlbnRlbmNlU3BhY2luZ2A6IHdhcm5pbmdzIGFib3V0IHRoZSBzcGFjZXMgYmV0d2VlbiBzZW50ZW5jZXMsIGFzIHJldGV4dC1zZW50ZW5jZS1zcGFjaW5nOyBvcHRpb25zIGFyZSByZXRleHQtc2VudGVuY2Utc3BhY2luZydzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZW50ZW5jZVNwYWNpbmdPcHRpb25zIHtcbiAgLyoqIFRoZSBzcGFjaW5nIGV4cGVjdGVkIGJldHdlZW4gc2VudGVuY2VzOiBgMWAgb3IgYFwic3BhY2VcImAgKHRoZSBkZWZhdWx0KSwgYDJgIG9yIGBcImRvdWJsZS1zcGFjZVwiYCwgYDBgIG9yIGBcIm5ld2xpbmVcImAuICovXG4gIHByZWZlcnJlZD86IFNwYWNpbmcgfCBudWxsXG59XG5cbi8qKiBBIHNwYWNpbmcgYmV0d2VlbiBzZW50ZW5jZXMsIGFzIGEgY291bnQgb2Ygc3BhY2VzIG9yIGJ5IG5hbWUuICovXG5leHBvcnQgdHlwZSBTcGFjaW5nID0gbnVtYmVyIHwgc3RyaW5nXG5cbi8qKiBgbmwuc21hcnR5cGFudHNgOiBzdHJhaWdodCBxdW90ZXMsIGRhc2hlcywgZG90cyBhbmQgYmFja3RpY2tzIGludG8gdHlwb2dyYXBoaWMgb25lczsgb3B0aW9ucyBhcyByZXRleHQtc21hcnR5cGFudHMgdGFrZXMgdGhlbS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU21hcnR5cGFudHNPcHRpb25zIHtcbiAgLyoqIFR1cm4gZG91YmxlIGJhY2t0aWNrcyBhbmQgZG91YmxlIHN0cmFpZ2h0IHNpbmdsZSBxdW90ZXMgaW50byBkb3VibGUgcXVvdGVzOyBgYWxsYCB0dXJucyBzaW5nbGUgb25lcyBpbnRvIHNpbmdsZSBxdW90ZXMgdG9vLCBhbmQgbmVlZHMgYHF1b3RlczogZmFsc2VgLiAqL1xuICBiYWNrdGlja3M/OiBCYWNrdGlja3NcbiAgLyoqIFRoZSBjbG9zaW5nIHF1b3RlcyB0byB1c2U6IGDigJ1gIGFuZCBg4oCZYCBieSBkZWZhdWx0LiAqL1xuICBjbG9zaW5nUXVvdGVzPzogUXVvdGVDaGFyYWN0ZXJzIHwgbnVsbFxuICAvKiogVHVybiB0d28gZGFzaGVzIGludG8gYW4gZW0gZGFzaDsgYG9sZHNjaG9vbGAgYW5kIGBpbnZlcnRlZGAgdHJlYXQgdGhyZWUgdG9vLiAqL1xuICBkYXNoZXM/OiBEYXNoZXNcbiAgLyoqIFR1cm4gdGhyZWUgZG90cyBpbnRvIGFuIGVsbGlwc2lzLCB3aXRoIHNwYWNlcyBiZXR3ZWVuIHRoZW0gb3Igd2l0aG91dC4gKi9cbiAgZWxsaXBzZXM/OiBFbGxpcHNlc1xuICAvKiogVGhlIG9wZW5pbmcgcXVvdGVzIHRvIHVzZTogYOKAnGAgYW5kIGDigJhgIGJ5IGRlZmF1bHQuICovXG4gIG9wZW5pbmdRdW90ZXM/OiBRdW90ZUNoYXJhY3RlcnMgfCBudWxsXG4gIC8qKiBUdXJuIHN0cmFpZ2h0IHF1b3RlcyBpbnRvIHNtYXJ0IG9uZXMuIEBkZWZhdWx0IHRydWUgKi9cbiAgcXVvdGVzPzogYm9vbGVhbiB8IG51bGxcbn1cblxuZXhwb3J0IHR5cGUgQmFja3RpY2tzID0gYm9vbGVhbiB8IFwiYWxsXCJcblxuLyoqIFRoZSBxdW90ZSBjaGFyYWN0ZXJzIHRvIHVzZSBmb3IgZG91YmxlIGFuZCBzaW5nbGUgcXVvdGVzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBRdW90ZUNoYXJhY3RlcnMge1xuICBkb3VibGU6IHN0cmluZ1xuICBzaW5nbGU6IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBEYXNoZXMgPSBib29sZWFuIHwgXCJvbGRzY2hvb2xcIiB8IFwiaW52ZXJ0ZWRcIlxuXG5leHBvcnQgdHlwZSBFbGxpcHNlcyA9IGJvb2xlYW4gfCBcInNwYWNlZFwiIHwgXCJ1bnNwYWNlZFwiXG5cbi8qKiBgbmwucXVvdGVzYDogY2hlY2sgdGhhdCBxdW90ZXMgYW5kIGFwb3N0cm9waGVzIGFyZSBzdHJhaWdodCBvciBzbWFydCwgYXMgcHJlZmVycmVkLCBhdCBlYWNoIGxldmVsIG9mIG5lc3Rpbmc7IG9wdGlvbnMgYXMgcmV0ZXh0LXF1b3RlcyB0YWtlcyB0aGVtLiAqL1xuZXhwb3J0IGludGVyZmFjZSBRdW90ZXNPcHRpb25zIHtcbiAgLyoqIFRoZSBzdHlsZSBvZiBxdW90ZXMgYW5kIGFwb3N0cm9waGVzIHRvIHByZWZlcjogYHNtYXJ0YCBieSBkZWZhdWx0LiAqL1xuICBwcmVmZXJyZWQ/OiBRdW90ZVN0eWxlIHwgbnVsbFxuICAvKiogU21hcnQgcXVvdGVzIGJ5IG5lc3RpbmcgbGV2ZWwsIGVhY2ggb25lIGNoYXJhY3RlciBvciBhbiBvcGVuaW5nIGFuZCBjbG9zaW5nIHBhaXI6IGBbXCLigJzigJ1cIiwgXCLigJjigJlcIl1gIGJ5IGRlZmF1bHQuICovXG4gIHNtYXJ0Pzogc3RyaW5nW10gfCBudWxsXG4gIC8qKiBTdHJhaWdodCBxdW90ZXMgYnkgbmVzdGluZyBsZXZlbDogYFtcIlxcXCJcIiwgXCInXCJdYCBieSBkZWZhdWx0LiAqL1xuICBzdHJhaWdodD86IHN0cmluZ1tdIHwgbnVsbFxufVxuXG4vKiogQSBzdHlsZSBvZiBxdW90ZXM6IHN0cmFpZ2h0IChgXCJgKSBvciBzbWFydCAoYOKAnOKAnWApLiAqL1xuZXhwb3J0IHR5cGUgUXVvdGVTdHlsZSA9IFwic21hcnRcIiB8IFwic3RyYWlnaHRcIlxuXG4vKiogYG5sLmNvbnRyYWN0aW9uc2A6IGNoZWNrIGFwb3N0cm9waGVzIGluIGNvbnRyYWN0aW9ucywgc3VjaCBhcyBgZG9u4oCZdGA7IG9wdGlvbnMgYXMgcmV0ZXh0LWNvbnRyYWN0aW9ucyB0YWtlcyB0aGVtLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb250cmFjdGlvbnNPcHRpb25zIHtcbiAgLyoqIEFsc28gY2hlY2sgY29udHJhY3Rpb25zIHdyaXR0ZW4gYXMgbGl0ZXJhbHMsIHN1Y2ggYXMgYOKAnGhhc2504oCdYC4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgYWxsb3dMaXRlcmFscz86IGJvb2xlYW4gfCBudWxsXG4gIC8qKiBFeHBlY3Qgc3RyYWlnaHQgYXBvc3Ryb3BoZXMgKGAnYCkgaW5zdGVhZCBvZiBzbWFydCBvbmVzIChg4oCZYCkuIEBkZWZhdWx0IGZhbHNlICovXG4gIHN0cmFpZ2h0PzogYm9vbGVhbiB8IG51bGxcbn1cblxuLyoqIFRoZSBgbmwucGFyc2VgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZShvcHRpb25zPzogUGFyc2VPcHRpb25zKTogUGx1Z2luPFwibmwucGFyc2VcIiwgUGFyc2VPcHRpb25zPiAmIFBhcnNlcjxSb290PiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwibmwucGFyc2VcIiB9XG4gIHJldHVybiB7IG5hbWU6IFwibmwucGFyc2VcIiwgb3B0aW9ucyB9XG59XG5cbi8qKiBUaGUgYG5sLmVxdWFsaXR5YCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gZXF1YWxpdHkob3B0aW9ucz86IEVxdWFsaXR5T3B0aW9ucyk6IFBsdWdpbjxcIm5sLmVxdWFsaXR5XCIsIEVxdWFsaXR5T3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcIm5sLmVxdWFsaXR5XCIgfVxuICByZXR1cm4geyBuYW1lOiBcIm5sLmVxdWFsaXR5XCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBubC5wYXNzaXZlYCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gcGFzc2l2ZShvcHRpb25zPzogUGFzc2l2ZU9wdGlvbnMpOiBQbHVnaW48XCJubC5wYXNzaXZlXCIsIFBhc3NpdmVPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwibmwucGFzc2l2ZVwiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJubC5wYXNzaXZlXCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBubC5yZWFkYWJpbGl0eWAgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlYWRhYmlsaXR5KG9wdGlvbnM/OiBSZWFkYWJpbGl0eU9wdGlvbnMpOiBQbHVnaW48XCJubC5yZWFkYWJpbGl0eVwiLCBSZWFkYWJpbGl0eU9wdGlvbnM+IHtcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgbmFtZTogXCJubC5yZWFkYWJpbGl0eVwiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJubC5yZWFkYWJpbGl0eVwiLCBvcHRpb25zIH1cbn1cblxuLyoqIFRoZSBgbmwucmVwZWF0ZWRXb3Jkc2AgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlcGVhdGVkV29yZHMoKTogUGx1Z2luPFwibmwucmVwZWF0ZWRXb3Jkc1wiPiB7XG4gIHJldHVybiB7IG5hbWU6IFwibmwucmVwZWF0ZWRXb3Jkc1wiIH1cbn1cblxuLyoqIFRoZSBgbmwuc2VudGVuY2VTcGFjaW5nYCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gc2VudGVuY2VTcGFjaW5nKG9wdGlvbnM/OiBTZW50ZW5jZVNwYWNpbmdPcHRpb25zKTogUGx1Z2luPFwibmwuc2VudGVuY2VTcGFjaW5nXCIsIFNlbnRlbmNlU3BhY2luZ09wdGlvbnM+IHtcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgbmFtZTogXCJubC5zZW50ZW5jZVNwYWNpbmdcIiB9XG4gIHJldHVybiB7IG5hbWU6IFwibmwuc2VudGVuY2VTcGFjaW5nXCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBubC5zdHJpbmdpZnlgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnkoKTogUGx1Z2luPFwibmwuc3RyaW5naWZ5XCI+IHtcbiAgcmV0dXJuIHsgbmFtZTogXCJubC5zdHJpbmdpZnlcIiB9XG59XG5cbi8qKiBUaGUgYG5sLnNtYXJ0eXBhbnRzYCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gc21hcnR5cGFudHMob3B0aW9ucz86IFNtYXJ0eXBhbnRzT3B0aW9ucyk6IFBsdWdpbjxcIm5sLnNtYXJ0eXBhbnRzXCIsIFNtYXJ0eXBhbnRzT3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcIm5sLnNtYXJ0eXBhbnRzXCIgfVxuICByZXR1cm4geyBuYW1lOiBcIm5sLnNtYXJ0eXBhbnRzXCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBubC5xdW90ZXNgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBxdW90ZXMob3B0aW9ucz86IFF1b3Rlc09wdGlvbnMpOiBQbHVnaW48XCJubC5xdW90ZXNcIiwgUXVvdGVzT3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcIm5sLnF1b3Rlc1wiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJubC5xdW90ZXNcIiwgb3B0aW9ucyB9XG59XG5cbi8qKiBUaGUgYG5sLmNvbnRyYWN0aW9uc2AgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnRyYWN0aW9ucyhvcHRpb25zPzogQ29udHJhY3Rpb25zT3B0aW9ucyk6IFBsdWdpbjxcIm5sLmNvbnRyYWN0aW9uc1wiLCBDb250cmFjdGlvbnNPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwibmwuY29udHJhY3Rpb25zXCIgfVxuICByZXR1cm4geyBuYW1lOiBcIm5sLmNvbnRyYWN0aW9uc1wiLCBvcHRpb25zIH1cbn1cblxuLyoqIFRoZSBgbmwuaW5kZWZpbml0ZUFydGljbGVgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmRlZmluaXRlQXJ0aWNsZSgpOiBQbHVnaW48XCJubC5pbmRlZmluaXRlQXJ0aWNsZVwiPiB7XG4gIHJldHVybiB7IG5hbWU6IFwibmwuaW5kZWZpbml0ZUFydGljbGVcIiB9XG59XG4iXX0=
|
package/build/index.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Processor } from "./models/processor.ts";
|
|
2
2
|
export type { Compatible, Message, MessageOptions, Node, Place, Point, VFile, } from "./models/file.ts";
|
|
3
|
-
export type { Attacher, Pluggable, PluggableList, Plugin, Preset, Transformer, } from "./models/plugin.ts";
|
|
3
|
+
export type { Attacher, Pluggable, PluggableList, Parser, Plugin, Preset, Transformer, } from "./models/plugin.ts";
|
|
4
4
|
export type { HostFile, HostMessage } from "./models/vfile.ts";
|
|
5
5
|
export { Processor } from "./models/processor.ts";
|
|
6
6
|
/** A new processor: add plugins with `use`, then `process` text. */
|
|
7
|
-
export declare function textlane(): Processor
|
|
7
|
+
export declare function textlane(): Processor<import("./models/file.ts").Node>;
|
|
8
8
|
/** The package version, as the native crate reports it. */
|
|
9
9
|
export declare const version: () => string;
|
|
10
10
|
/** The name of every native plugin, as a pipeline names it. */
|
package/build/index.js
CHANGED
|
@@ -24,4 +24,4 @@ export const retainedMemory = addon.retainedMemory;
|
|
|
24
24
|
* default is 256 MB.
|
|
25
25
|
*/
|
|
26
26
|
export const setRetainedMemory = addon.setRetainedMemory;
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUV6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFxQmpELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUVqRCxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7QUFFOUMsTUFBTSxLQUFLLEdBQVUsT0FBTyxDQUMxQixZQUFZLENBQUM7SUFDWCxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7SUFDMUIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO0lBQ2xCLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRztJQUNoQixjQUFjLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztDQUN4RCxDQUFDLENBQ0gsQ0FBQTtBQUVELG9FQUFvRTtBQUNwRSxNQUFNLFVBQVUsUUFBUTtJQUN0QixPQUFPLElBQUksU0FBUyxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7QUFDNUMsQ0FBQztBQUVELDJEQUEyRDtBQUMzRCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQTtBQUVwQywrREFBK0Q7QUFDL0QsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUE7QUFFNUMsMkZBQTJGO0FBQzNGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFBO0FBRWxEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tIFwibm9kZTptb2R1bGVcIlxuaW1wb3J0IHsgcmVzb2x2ZUFkZG9uIH0gZnJvbSBcIi4vYWN0aW9ucy9hZGRvbi9yZXNvbHZlLnRzXCJcbmltcG9ydCB0eXBlIHsgQWRkb24gfSBmcm9tIFwiLi9tb2RlbHMvYWRkb24udHNcIlxuaW1wb3J0IHsgUHJvY2Vzc29yIH0gZnJvbSBcIi4vbW9kZWxzL3Byb2Nlc3Nvci50c1wiXG5cbmV4cG9ydCB0eXBlIHtcbiAgQ29tcGF0aWJsZSxcbiAgTWVzc2FnZSxcbiAgTWVzc2FnZU9wdGlvbnMsXG4gIE5vZGUsXG4gIFBsYWNlLFxuICBQb2ludCxcbiAgVkZpbGUsXG59IGZyb20gXCIuL21vZGVscy9maWxlLnRzXCJcbmV4cG9ydCB0eXBlIHtcbiAgQXR0YWNoZXIsXG4gIFBsdWdnYWJsZSxcbiAgUGx1Z2dhYmxlTGlzdCxcbiAgUGFyc2VyLFxuICBQbHVnaW4sXG4gIFByZXNldCxcbiAgVHJhbnNmb3JtZXIsXG59IGZyb20gXCIuL21vZGVscy9wbHVnaW4udHNcIlxuZXhwb3J0IHR5cGUgeyBIb3N0RmlsZSwgSG9zdE1lc3NhZ2UgfSBmcm9tIFwiLi9tb2RlbHMvdmZpbGUudHNcIlxuZXhwb3J0IHsgUHJvY2Vzc29yIH0gZnJvbSBcIi4vbW9kZWxzL3Byb2Nlc3Nvci50c1wiXG5cbmNvbnN0IHJlcXVpcmUgPSBjcmVhdGVSZXF1aXJlKGltcG9ydC5tZXRhLnVybClcblxuY29uc3QgYWRkb246IEFkZG9uID0gcmVxdWlyZShcbiAgcmVzb2x2ZUFkZG9uKHtcbiAgICBwbGF0Zm9ybTogcHJvY2Vzcy5wbGF0Zm9ybSxcbiAgICBhcmNoOiBwcm9jZXNzLmFyY2gsXG4gICAgZW52OiBwcm9jZXNzLmVudixcbiAgICByZXNvbHZlUGFja2FnZTogc3BlY2lmaWVyID0+IHJlcXVpcmUucmVzb2x2ZShzcGVjaWZpZXIpLFxuICB9KSxcbilcblxuLyoqIEEgbmV3IHByb2Nlc3NvcjogYWRkIHBsdWdpbnMgd2l0aCBgdXNlYCwgdGhlbiBgcHJvY2Vzc2AgdGV4dC4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0ZXh0bGFuZSgpIHtcbiAgcmV0dXJuIG5ldyBQcm9jZXNzb3IobmV3IGFkZG9uLlBpcGVsaW5lKCkpXG59XG5cbi8qKiBUaGUgcGFja2FnZSB2ZXJzaW9uLCBhcyB0aGUgbmF0aXZlIGNyYXRlIHJlcG9ydHMgaXQuICovXG5leHBvcnQgY29uc3QgdmVyc2lvbiA9IGFkZG9uLnZlcnNpb25cblxuLyoqIFRoZSBuYW1lIG9mIGV2ZXJ5IG5hdGl2ZSBwbHVnaW4sIGFzIGEgcGlwZWxpbmUgbmFtZXMgaXQuICovXG5leHBvcnQgY29uc3QgcGx1Z2luTmFtZXMgPSBhZGRvbi5wbHVnaW5OYW1lc1xuXG4vKiogVGhlIG1vc3QgbWVtb3J5LCBpbiBieXRlcywgZWFjaCB0aHJlYWQga2VlcHMgYWZ0ZXIgYSBkb2N1bWVudCB0byByZXVzZSBmb3IgdGhlIG5leHQuICovXG5leHBvcnQgY29uc3QgcmV0YWluZWRNZW1vcnkgPSBhZGRvbi5yZXRhaW5lZE1lbW9yeVxuXG4vKipcbiAqIENhcCB0aGUgbWVtb3J5LCBpbiBieXRlcywgZWFjaCB0aHJlYWQga2VlcHMgYWZ0ZXIgYSBkb2N1bWVudDsgYDBgIGtlZXBzIG5vbmUuIFRoZVxuICogZGVmYXVsdCBpcyAyNTYgTUIuXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRSZXRhaW5lZE1lbW9yeSA9IGFkZG9uLnNldFJldGFpbmVkTWVtb3J5XG4iXX0=
|
package/build/models/addon.d.ts
CHANGED
|
@@ -1,28 +1,37 @@
|
|
|
1
|
+
import type { Node as UnistNode } from "unist";
|
|
1
2
|
import type { Message, Node, VFile } from "./file.ts";
|
|
2
3
|
/** The crate's pipeline as the addon exposes it: values cross as JSON. */
|
|
3
|
-
export interface NativePipeline {
|
|
4
|
+
export interface NativePipeline<Tree extends UnistNode = Node> {
|
|
4
5
|
use(value: unknown, options?: unknown): void;
|
|
5
6
|
data(key?: string): unknown;
|
|
6
7
|
setData(key: string, value: unknown): void;
|
|
7
8
|
replaceData(data: Record<string, unknown>): void;
|
|
8
9
|
freeze(): void;
|
|
9
|
-
parse(text: string):
|
|
10
|
-
run(tree:
|
|
11
|
-
runSync(tree:
|
|
12
|
-
stringify(tree:
|
|
13
|
-
process(text: string, path?: string):
|
|
10
|
+
parse(text: string): Tree;
|
|
11
|
+
run(tree: UnistNode, value?: string): Node;
|
|
12
|
+
runSync(tree: UnistNode, value?: string): Node;
|
|
13
|
+
stringify(tree: UnistNode): string;
|
|
14
|
+
process(text: string, path?: string): Promise<ProcessOutcome>;
|
|
14
15
|
processSync(text: string, path?: string): VFile;
|
|
15
16
|
hosts(): number[];
|
|
16
|
-
startRun(tree:
|
|
17
|
+
startRun(tree: UnistNode, value: string | undefined, sync: boolean): NativeRun<Node>;
|
|
17
18
|
startProcess(text: string, sync: boolean, path?: string): NativeRun<VFile>;
|
|
18
19
|
}
|
|
20
|
+
/** What an async `process` settles with: the file, or the error the crate raised. */
|
|
21
|
+
export interface ProcessOutcome {
|
|
22
|
+
file?: VFile;
|
|
23
|
+
error?: {
|
|
24
|
+
code: string;
|
|
25
|
+
message: string;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
19
28
|
/** A run paused before host plugins until `resume`, then finished with `result`. */
|
|
20
29
|
export interface NativeRun<Result> {
|
|
21
30
|
hosts(): number[];
|
|
22
31
|
tree(): Node;
|
|
23
32
|
value(): string | null;
|
|
24
33
|
messages(): Message[];
|
|
25
|
-
resume(tree:
|
|
34
|
+
resume(tree: UnistNode, messages: Message[]): void;
|
|
26
35
|
result(): Result;
|
|
27
36
|
}
|
|
28
37
|
/** What the napi addon exports. */
|
package/build/models/addon.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9tb2RlbHMvYWRkb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTm9kZSBhcyBVbmlzdE5vZGUgfSBmcm9tIFwidW5pc3RcIlxuaW1wb3J0IHR5cGUgeyBNZXNzYWdlLCBOb2RlLCBWRmlsZSB9IGZyb20gXCIuL2ZpbGUudHNcIlxuXG4vKiogVGhlIGNyYXRlJ3MgcGlwZWxpbmUgYXMgdGhlIGFkZG9uIGV4cG9zZXMgaXQ6IHZhbHVlcyBjcm9zcyBhcyBKU09OLiAqL1xuZXhwb3J0IGludGVyZmFjZSBOYXRpdmVQaXBlbGluZTxUcmVlIGV4dGVuZHMgVW5pc3ROb2RlID0gTm9kZT4ge1xuICB1c2UodmFsdWU6IHVua25vd24sIG9wdGlvbnM/OiB1bmtub3duKTogdm9pZFxuICBkYXRhKGtleT86IHN0cmluZyk6IHVua25vd25cbiAgc2V0RGF0YShrZXk6IHN0cmluZywgdmFsdWU6IHVua25vd24pOiB2b2lkXG4gIHJlcGxhY2VEYXRhKGRhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogdm9pZFxuICBmcmVlemUoKTogdm9pZFxuICBwYXJzZSh0ZXh0OiBzdHJpbmcpOiBUcmVlXG4gIHJ1bih0cmVlOiBVbmlzdE5vZGUsIHZhbHVlPzogc3RyaW5nKTogTm9kZVxuICBydW5TeW5jKHRyZWU6IFVuaXN0Tm9kZSwgdmFsdWU/OiBzdHJpbmcpOiBOb2RlXG4gIHN0cmluZ2lmeSh0cmVlOiBVbmlzdE5vZGUpOiBzdHJpbmdcbiAgcHJvY2Vzcyh0ZXh0OiBzdHJpbmcsIHBhdGg/OiBzdHJpbmcpOiBQcm9taXNlPFByb2Nlc3NPdXRjb21lPlxuICBwcm9jZXNzU3luYyh0ZXh0OiBzdHJpbmcsIHBhdGg/OiBzdHJpbmcpOiBWRmlsZVxuICBob3N0cygpOiBudW1iZXJbXVxuICBzdGFydFJ1bih0cmVlOiBVbmlzdE5vZGUsIHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQsIHN5bmM6IGJvb2xlYW4pOiBOYXRpdmVSdW48Tm9kZT5cbiAgc3RhcnRQcm9jZXNzKHRleHQ6IHN0cmluZywgc3luYzogYm9vbGVhbiwgcGF0aD86IHN0cmluZyk6IE5hdGl2ZVJ1bjxWRmlsZT5cbn1cblxuLyoqIFdoYXQgYW4gYXN5bmMgYHByb2Nlc3NgIHNldHRsZXMgd2l0aDogdGhlIGZpbGUsIG9yIHRoZSBlcnJvciB0aGUgY3JhdGUgcmFpc2VkLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9jZXNzT3V0Y29tZSB7XG4gIGZpbGU/OiBWRmlsZVxuICBlcnJvcj86IHsgY29kZTogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmcgfVxufVxuXG4vKiogQSBydW4gcGF1c2VkIGJlZm9yZSBob3N0IHBsdWdpbnMgdW50aWwgYHJlc3VtZWAsIHRoZW4gZmluaXNoZWQgd2l0aCBgcmVzdWx0YC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmF0aXZlUnVuPFJlc3VsdD4ge1xuICBob3N0cygpOiBudW1iZXJbXVxuICB0cmVlKCk6IE5vZGVcbiAgdmFsdWUoKTogc3RyaW5nIHwgbnVsbFxuICBtZXNzYWdlcygpOiBNZXNzYWdlW11cbiAgcmVzdW1lKHRyZWU6IFVuaXN0Tm9kZSwgbWVzc2FnZXM6IE1lc3NhZ2VbXSk6IHZvaWRcbiAgcmVzdWx0KCk6IFJlc3VsdFxufVxuXG4vKiogV2hhdCB0aGUgbmFwaSBhZGRvbiBleHBvcnRzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZGRvbiB7XG4gIHZlcnNpb24oKTogc3RyaW5nXG4gIHBsdWdpbk5hbWVzKCk6IHN0cmluZ1tdXG4gIHJldGFpbmVkTWVtb3J5KCk6IG51bWJlclxuICBzZXRSZXRhaW5lZE1lbW9yeShieXRlczogbnVtYmVyKTogdm9pZFxuICBQaXBlbGluZTogbmV3ICgpID0+IE5hdGl2ZVBpcGVsaW5lXG59XG4iXX0=
|
package/build/models/plugin.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Node as UnistNode } from "unist";
|
|
1
2
|
import type { Node } from "./file.ts";
|
|
2
3
|
import type { HostFile } from "./vfile.ts";
|
|
3
4
|
/** A native plugin as a pipeline names it, with its options when given. */
|
|
@@ -5,6 +6,11 @@ export interface Plugin<Name extends string = string, Options = unknown> {
|
|
|
5
6
|
name: Name;
|
|
6
7
|
options?: Options;
|
|
7
8
|
}
|
|
9
|
+
declare const parsed: unique symbol;
|
|
10
|
+
/** A parser plugin, carrying the tree `parse` returns once it is used; nothing at runtime. */
|
|
11
|
+
export interface Parser<Tree extends UnistNode = UnistNode> {
|
|
12
|
+
readonly [parsed]?: Tree;
|
|
13
|
+
}
|
|
8
14
|
/** Plugins and the settings they share, as unified's presets. */
|
|
9
15
|
export interface Preset {
|
|
10
16
|
plugins?: PluggableList;
|
|
@@ -24,3 +30,4 @@ export type Transformer = (tree: Node, file: HostFile, next: (error?: unknown, t
|
|
|
24
30
|
export type Pluggable = Plugin | string | Attacher | [Plugin | string | Attacher, unknown?] | Preset;
|
|
25
31
|
/** Several pluggables, used in order. */
|
|
26
32
|
export type PluggableList = Pluggable[];
|
|
33
|
+
export {};
|
package/build/models/plugin.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbW9kZWxzL3BsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBOb2RlIGFzIFVuaXN0Tm9kZSB9IGZyb20gXCJ1bmlzdFwiXG5pbXBvcnQgdHlwZSB7IE5vZGUgfSBmcm9tIFwiLi9maWxlLnRzXCJcbmltcG9ydCB0eXBlIHsgSG9zdEZpbGUgfSBmcm9tIFwiLi92ZmlsZS50c1wiXG5cbi8qKiBBIG5hdGl2ZSBwbHVnaW4gYXMgYSBwaXBlbGluZSBuYW1lcyBpdCwgd2l0aCBpdHMgb3B0aW9ucyB3aGVuIGdpdmVuLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbHVnaW48TmFtZSBleHRlbmRzIHN0cmluZyA9IHN0cmluZywgT3B0aW9ucyA9IHVua25vd24+IHtcbiAgbmFtZTogTmFtZVxuICBvcHRpb25zPzogT3B0aW9uc1xufVxuXG5kZWNsYXJlIGNvbnN0IHBhcnNlZDogdW5pcXVlIHN5bWJvbFxuXG4vKiogQSBwYXJzZXIgcGx1Z2luLCBjYXJyeWluZyB0aGUgdHJlZSBgcGFyc2VgIHJldHVybnMgb25jZSBpdCBpcyB1c2VkOyBub3RoaW5nIGF0IHJ1bnRpbWUuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlcjxUcmVlIGV4dGVuZHMgVW5pc3ROb2RlID0gVW5pc3ROb2RlPiB7XG4gIHJlYWRvbmx5IFtwYXJzZWRdPzogVHJlZVxufVxuXG4vKiogUGx1Z2lucyBhbmQgdGhlIHNldHRpbmdzIHRoZXkgc2hhcmUsIGFzIHVuaWZpZWQncyBwcmVzZXRzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVzZXQge1xuICBwbHVnaW5zPzogUGx1Z2dhYmxlTGlzdFxuICBzZXR0aW5ncz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG59XG5cbi8qKlxuICogQSBKYXZhU2NyaXB0IHBsdWdpbiwgYXMgdW5pZmllZCdzIGF0dGFjaGVyczogY2FsbGVkIHdpdGggdGhlIHByb2Nlc3NvciBhcyBgdGhpc2AgYW5kIGl0c1xuICogb3B0aW9ucyB3aGVuIHRoZSBwcm9jZXNzb3IgZnJlZXplcywgaXQgcmV0dXJucyB0aGUgdHJhbnNmb3JtZXIgdGhlIHBpcGVsaW5lIHJ1bnMuXG4gKi9cbmV4cG9ydCB0eXBlIEF0dGFjaGVyID0gKHRoaXM6IG5ldmVyLCAuLi5wYXJhbWV0ZXJzOiBuZXZlcltdKSA9PiB1bmtub3duXG5cbi8qKlxuICogV2hhdCBhbiBhdHRhY2hlciByZXR1cm5zOiBpdCBjaGFuZ2VzIHRoZSB0cmVlIGluIHBsYWNlIG9yIHJldHVybnMgYSBuZXcgb25lLCBkaXJlY3RseSxcbiAqIHRocm91Z2ggYSBwcm9taXNlIG9yIHRocm91Z2ggYG5leHRgLlxuICovXG5leHBvcnQgdHlwZSBUcmFuc2Zvcm1lciA9IChcbiAgdHJlZTogTm9kZSxcbiAgZmlsZTogSG9zdEZpbGUsXG4gIG5leHQ6IChlcnJvcj86IHVua25vd24sIHRyZWU/OiBOb2RlKSA9PiB2b2lkLFxuKSA9PiB1bmtub3duXG5cbi8qKiBBIHBsdWdpbiwgYnkgZGVzY3JpcHRvciwgbmFtZSBvciBhdHRhY2hlciwgd2l0aCBvcHRpb25zLCBvciBhIHByZXNldC4gKi9cbmV4cG9ydCB0eXBlIFBsdWdnYWJsZSA9XG4gIHwgUGx1Z2luXG4gIHwgc3RyaW5nXG4gIHwgQXR0YWNoZXJcbiAgfCBbUGx1Z2luIHwgc3RyaW5nIHwgQXR0YWNoZXIsIHVua25vd24/XVxuICB8IFByZXNldFxuXG4vKiogU2V2ZXJhbCBwbHVnZ2FibGVzLCB1c2VkIGluIG9yZGVyLiAqL1xuZXhwb3J0IHR5cGUgUGx1Z2dhYmxlTGlzdCA9IFBsdWdnYWJsZVtdXG4iXX0=
|
|
@@ -1,18 +1,20 @@
|
|
|
1
|
+
import type { Node as UnistNode } from "unist";
|
|
1
2
|
import type { NativePipeline } from "./addon.ts";
|
|
2
3
|
import type { Compatible, Node, VFile } from "./file.ts";
|
|
3
|
-
import type { Pluggable, PluggableList, Preset } from "./plugin.ts";
|
|
4
|
+
import type { Parser, Pluggable, PluggableList, Preset } from "./plugin.ts";
|
|
4
5
|
/**
|
|
5
6
|
* unified's processor over the native pipeline; every call is the crate's, except that
|
|
6
7
|
* JavaScript plugins run here when a run pauses before them.
|
|
7
8
|
*/
|
|
8
|
-
export declare class Processor {
|
|
9
|
+
export declare class Processor<Tree extends UnistNode = Node> {
|
|
9
10
|
#private;
|
|
10
|
-
constructor(native: NativePipeline);
|
|
11
|
+
constructor(native: NativePipeline<Tree>);
|
|
11
12
|
/**
|
|
12
13
|
* Add a plugin, a list of them or a preset; a plugin used again is reconfigured. A
|
|
13
14
|
* JavaScript plugin is an attacher, called with the processor and its options at freeze.
|
|
15
|
+
* A parser, such as `md.parse()`, types the tree `parse` returns.
|
|
14
16
|
*/
|
|
15
|
-
use
|
|
17
|
+
use<Value extends Pluggable | PluggableList | Preset | null | undefined>(value: Value, ...options: unknown[]): Processor<ParsedTree<Value, Tree>>;
|
|
16
18
|
/** All data, or the value under `key`. */
|
|
17
19
|
data(): Record<string, unknown>;
|
|
18
20
|
data(key: string): unknown;
|
|
@@ -22,18 +24,20 @@ export declare class Processor {
|
|
|
22
24
|
/** Attach every plugin; later `use` and `data` setters fail. */
|
|
23
25
|
freeze(): this;
|
|
24
26
|
/** Parse a document into a tree. */
|
|
25
|
-
parse(document: Compatible):
|
|
27
|
+
parse(document: Compatible): Tree;
|
|
26
28
|
/**
|
|
27
29
|
* Run the transforms, finishing asynchronous stages; `file`, the text `tree` was parsed
|
|
28
30
|
* from, lets bridges read it and keeps positions in the result.
|
|
29
31
|
*/
|
|
30
|
-
run(tree:
|
|
32
|
+
run(tree: UnistNode, file?: Compatible): Promise<Node>;
|
|
31
33
|
/** Run the transforms; fails with `async-in-sync` on an asynchronous stage. */
|
|
32
|
-
runSync(tree:
|
|
34
|
+
runSync(tree: UnistNode, file?: Compatible): Node;
|
|
33
35
|
/** Compile a tree, running no transform. */
|
|
34
|
-
stringify(tree:
|
|
36
|
+
stringify(tree: UnistNode): string;
|
|
35
37
|
/** Parse, run and compile a document, finishing asynchronous stages. */
|
|
36
38
|
process(document: Compatible): Promise<VFile>;
|
|
37
39
|
/** Parse, run and compile a document; fails with `async-in-sync` on an asynchronous stage. */
|
|
38
40
|
processSync(document: Compatible): VFile;
|
|
39
41
|
}
|
|
42
|
+
type ParsedTree<Value, Current> = Value extends Parser<infer Parsed> ? Parsed extends UnistNode ? Parsed : Current : Current;
|
|
43
|
+
export {};
|
|
@@ -13,13 +13,11 @@ export class Processor {
|
|
|
13
13
|
#ids = new Map();
|
|
14
14
|
#hosts = new Map();
|
|
15
15
|
#attached = false;
|
|
16
|
+
#frozen = false;
|
|
16
17
|
constructor(native) {
|
|
17
18
|
this.#native = native;
|
|
18
19
|
}
|
|
19
|
-
|
|
20
|
-
* Add a plugin, a list of them or a preset; a plugin used again is reconfigured. A
|
|
21
|
-
* JavaScript plugin is an attacher, called with the processor and its options at freeze.
|
|
22
|
-
*/
|
|
20
|
+
// a parser retypes this same processor: the tree it parses lives in the type alone
|
|
23
21
|
use(value, ...options) {
|
|
24
22
|
if (isAttacher(value)) {
|
|
25
23
|
this.#native.use([this.#register(value, options)]);
|
|
@@ -43,7 +41,7 @@ export class Processor {
|
|
|
43
41
|
/** Attach every plugin; later `use` and `data` setters fail. */
|
|
44
42
|
freeze() {
|
|
45
43
|
this.#attach();
|
|
46
|
-
this.#
|
|
44
|
+
this.#freezeNative();
|
|
47
45
|
return this;
|
|
48
46
|
}
|
|
49
47
|
/** Parse a document into a tree. */
|
|
@@ -82,8 +80,15 @@ export class Processor {
|
|
|
82
80
|
/** Parse, run and compile a document, finishing asynchronous stages. */
|
|
83
81
|
async process(document) {
|
|
84
82
|
const text = readValue(document) ?? "";
|
|
85
|
-
if (!this.#attach())
|
|
86
|
-
|
|
83
|
+
if (!this.#attach()) {
|
|
84
|
+
this.#freezeNative();
|
|
85
|
+
const outcome = await this.#native.process(text, readPath(document));
|
|
86
|
+
if (outcome.error)
|
|
87
|
+
throw Object.assign(new Error(outcome.error.message), outcome.error);
|
|
88
|
+
if (!outcome.file)
|
|
89
|
+
throw new Error("process settled with neither a file nor an error");
|
|
90
|
+
return withPath(outcome.file, document);
|
|
91
|
+
}
|
|
87
92
|
const run = this.#native.startProcess(text, false, readPath(document));
|
|
88
93
|
const file = new HostFile({ value: run.value() ?? text, path: readPath(document) });
|
|
89
94
|
await finishRun({ run, hosts: this.#hosts, file, sync: false, call: "process" });
|
|
@@ -99,6 +104,14 @@ export class Processor {
|
|
|
99
104
|
void finishRun({ run, hosts: this.#hosts, file, sync: true, call: "process" });
|
|
100
105
|
return withPath(mergeData(run.result(), file.data), document);
|
|
101
106
|
}
|
|
107
|
+
// Once only: `freeze` borrows the native pipeline mutably, which napi refuses while an
|
|
108
|
+
// async `process` still holds it
|
|
109
|
+
#freezeNative() {
|
|
110
|
+
if (this.#frozen)
|
|
111
|
+
return;
|
|
112
|
+
this.#frozen = true;
|
|
113
|
+
this.#native.freeze();
|
|
114
|
+
}
|
|
102
115
|
// unified's addPlugin: the same attacher is one plugin, its object options merged
|
|
103
116
|
#register(attacher, parameters) {
|
|
104
117
|
let id = this.#ids.get(attacher);
|
|
@@ -151,4 +164,4 @@ function withPath(file, document) {
|
|
|
151
164
|
const path = readPath(document);
|
|
152
165
|
return path === undefined ? file : { ...file, path };
|
|
153
166
|
}
|
|
154
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbW9kZWxzL3Byb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUN6RSxPQUFPLEVBQWtCLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFBO0FBQzFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUE7QUFLL0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUVyQzs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sU0FBUztJQUNwQixPQUFPLENBQWdCO0lBQ3ZCLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQTtJQUNsQyxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQWdCLENBQUE7SUFDaEMsU0FBUyxHQUFHLEtBQUssQ0FBQTtJQUVqQixZQUFZLE1BQXNCO1FBQ2hDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFBO0lBQ3ZCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxHQUFHLENBQ0QsS0FBNEQsRUFDNUQsR0FBRyxPQUFrQjtRQUVyQixJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ2xELE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQztRQUNELE1BQU0sUUFBUSxHQUFHLENBQUMsUUFBa0IsRUFBRSxVQUFxQixFQUFFLEVBQUUsQ0FDN0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUs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QUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFBO0FBQzFELENBQUM7QUFFRCx5RUFBeUU7QUFDekUsU0FBUyxTQUFTLENBQUMsTUFBYSxFQUFFLElBQTZCO0lBQzdELE9BQU8sRUFBRSxHQUFHLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFBO0FBQ3pELENBQUM7QUFFRCxTQUFTLFFBQVEsQ0FBQyxJQUFXLEVBQUUsUUFBb0I7SUFDakQsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQy9CLE9BQU8sSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFBO0FBQ3RELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0F0dGFjaGVyIH0gZnJvbSBcIi4uL2FjdGlvbnMvYXR0YWNoZXIvY2hlY2sudHNcIlxuaW1wb3J0IHsgaXNQbGFpbk9iamVjdCwgbWVyZ2VPcHRpb25zIH0gZnJvbSBcIi4uL2FjdGlvbnMvb3B0aW9ucy9tZXJnZS50c1wiXG5pbXBvcnQgeyB0eXBlIEhvc3RFbnRyeSwgbWFwUGx1Z2dhYmxlIH0gZnJvbSBcIi4uL2FjdGlvbnMvcGx1Z2dhYmxlL21hcC50c1wiXG5pbXBvcnQgeyBmaW5pc2hSdW4gfSBmcm9tIFwiLi4vYWN0aW9ucy9ydW4vZmluaXNoLnRzXCJcbmltcG9ydCB7IGlzVHJhbnNmb3JtZXIgfSBmcm9tIFwiLi4vYWN0aW9ucy90cmFuc2Zvcm1lci9jaGVjay50c1wiXG5pbXBvcnQgdHlwZSB7IE5hdGl2ZVBpcGVsaW5lIH0gZnJvbSBcIi4vYWRkb24udHNcIlxuaW1wb3J0IHR5cGUgeyBDb21wYXRpYmxlLCBOb2RlLCBWRmlsZSB9IGZyb20gXCIuL2ZpbGUudHNcIlxuaW1wb3J0IHR5cGUgeyBIb3N0IH0gZnJvbSBcIi4vaG9zdC50c1wiXG5pbXBvcnQgdHlwZSB7IEF0dGFjaGVyLCBQbHVnZ2FibGUsIFBsdWdnYWJsZUxpc3QsIFByZXNldCB9IGZyb20gXCIuL3BsdWdpbi50c1wiXG5pbXBvcnQgeyBIb3N0RmlsZSB9IGZyb20gXCIuL3ZmaWxlLnRzXCJcblxuLyoqXG4gKiB1bmlmaWVkJ3MgcHJvY2Vzc29yIG92ZXIgdGhlIG5hdGl2ZSBwaXBlbGluZTsgZXZlcnkgY2FsbCBpcyB0aGUgY3JhdGUncywgZXhjZXB0IHRoYXRcbiAqIEphdmFTY3JpcHQgcGx1Z2lucyBydW4gaGVyZSB3aGVuIGEgcnVuIHBhdXNlcyBiZWZvcmUgdGhlbS5cbiAqL1xuZXhwb3J0IGNsYXNzIFByb2Nlc3NvciB7XG4gICNuYXRpdmU6IE5hdGl2ZVBpcGVsaW5lXG4gICNpZHMgPSBuZXcgTWFwPEF0dGFjaGVyLCBudW1iZXI+KClcbiAgI2hvc3RzID0gbmV3IE1hcDxudW1iZXIsIEhvc3Q+KClcbiAgI2F0dGFjaGVkID0gZmFsc2VcblxuICBjb25zdHJ1Y3RvcihuYXRpdmU6IE5hdGl2ZVBpcGVsaW5lKSB7XG4gICAgdGhpcy4jbmF0aXZlID0gbmF0aXZlXG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgcGx1Z2luLCBhIGxpc3Qgb2YgdGhlbSBvciBhIHByZXNldDsgYSBwbHVnaW4gdXNlZCBhZ2FpbiBpcyByZWNvbmZpZ3VyZWQuIEFcbiAgICogSmF2YVNjcmlwdCBwbHVnaW4gaXMgYW4gYXR0YWNoZXIsIGNhbGxlZCB3aXRoIHRoZSBwcm9jZXNzb3IgYW5kIGl0cyBvcHRpb25zIGF0IGZyZWV6ZS5cbiAgICovXG4gIHVzZShcbiAgICB2YWx1ZTogUGx1Z2dhYmxlIHwgUGx1Z2dhYmxlTGlzdCB8IFByZXNldCB8IG51bGwgfCB1bmRlZmluZWQsXG4gICAgLi4ub3B0aW9uczogdW5rbm93bltdXG4gICkge1xuICAgIGlmIChpc0F0dGFjaGVyKHZhbHVlKSkge1xuICAgICAgdGhpcy4jbmF0aXZlLnVzZShbdGhpcy4jcmVnaXN0ZXIodmFsdWUsIG9wdGlvbnMpXSlcbiAgICAgIHJldHVybiB0aGlzXG4gICAgfVxuICAgIGNvbnN0IHJlZ2lzdGVyID0gKGF0dGFjaGVyOiBBdHRhY2hlciwgcGFyYW1ldGVyczogdW5rbm93bltdKSA9PlxuICAgICAgdGhpcy4jcmVnaXN0ZXIoYXR0YWNoZXIsIHBhcmFtZXRlcnMpXG4gICAgdGhpcy4jbmF0aXZlLnVzZShtYXBQbHVnZ2FibGUodmFsdWUgPz8gbnVsbCwgcmVnaXN0ZXIpLCBvcHRpb25zWzBdKVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKiogQWxsIGRhdGEsIG9yIHRoZSB2YWx1ZSB1bmRlciBga2V5YC4gKi9cbiAgZGF0YSgpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBkYXRhKGtleTogc3RyaW5nKTogdW5rbm93blxuICAvKiogU2V0IHRoZSB2YWx1ZSB1bmRlciBga2V5YCwgb3IgcmVwbGFjZSBhbGwgZGF0YS4gKi9cbiAgZGF0YShrZXk6IHN0cmluZywgdmFsdWU6IHVua25vd24pOiB0aGlzXG4gIGRhdGEoZGF0YXNldDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiB0aGlzXG4gIGRhdGEoa2V5Pzogc3RyaW5nIHwgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIC4uLnZhbHVlOiB1bmtub3duW10pIHtcbiAgICBpZiAodHlwZW9mIGtleSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgdGhpcy4jbmF0aXZlLnJlcGxhY2VEYXRhKGtleSlcbiAgICAgIHJldHVybiB0aGlzXG4gICAgfVxuICAgIGlmIChrZXkgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLiNuYXRpdmUuc2V0RGF0YShrZXksIHZhbHVlWzBdKVxuICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuI25hdGl2ZS5kYXRhKGtleSlcbiAgfVxuXG4gIC8qKiBBdHRhY2ggZXZlcnkgcGx1Z2luOyBsYXRlciBgdXNlYCBhbmQgYGRhdGFgIHNldHRlcnMgZmFpbC4gKi9cbiAgZnJlZXplKCkge1xuICAgIHRoaXMuI2F0dGFjaCgpXG4gICAgdGhpcy4jbmF0aXZlLmZyZWV6ZSgpXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8qKiBQYXJzZSBhIGRvY3VtZW50IGludG8gYSB0cmVlLiAqL1xuICBwYXJzZShkb2N1bWVudDogQ29tcGF0aWJsZSkge1xuICAgIHRoaXMuI2F0dGFjaCgpXG4gICAgcmV0dXJuIHRoaXMuI25hdGl2ZS5wYXJzZShyZWFkVmFsdWUoZG9jdW1lbnQpID8/IFwiXCIpXG4gIH1cblxuICAvKipcbiAgICogUnVuIHRoZSB0cmFuc2Zvcm1zLCBmaW5pc2hpbmcgYXN5bmNocm9ub3VzIHN0YWdlczsgYGZpbGVgLCB0aGUgdGV4dCBgdHJlZWAgd2FzIHBhcnNlZFxuICAgKiBmcm9tLCBsZXRzIGJyaWRnZXMgcmVhZCBpdCBhbmQga2VlcHMgcG9zaXRpb25zIGluIHRoZSByZXN1bHQuXG4gICAqL1xuICBhc3luYyBydW4odHJlZTogTm9kZSwgZmlsZT86IENvbXBhdGlibGUpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHJlYWRWYWx1ZShmaWxlKVxuICAgIGlmICghdGhpcy4jYXR0YWNoKCkpIHJldHVybiB0aGlzLiNuYXRpdmUucnVuKHRyZWUsIHZhbHVlKVxuICAgIGNvbnN0IHJ1biA9IHRoaXMuI25hdGl2ZS5zdGFydFJ1bih0cmVlLCB2YWx1ZSwgZmFsc2UpXG4gICAgY29uc3QgaG9zdCA9IG5ldyBIb3N0RmlsZSh7IHZhbHVlLCBwYXRoOiByZWFkUGF0aChmaWxlKSB9KVxuICAgIGF3YWl0IGZpbmlzaFJ1bih7IHJ1biwgaG9zdHM6IHRoaXMuI2hvc3RzLCBmaWxlOiBob3N0LCBzeW5jOiBmYWxzZSwgY2FsbDogXCJydW5cIiB9KVxuICAgIHJldHVybiBydW4ucmVzdWx0KClcbiAgfVxuXG4gIC8qKiBSdW4gdGhlIHRyYW5zZm9ybXM7IGZhaWxzIHdpdGggYGFzeW5jLWluLXN5bmNgIG9uIGFuIGFzeW5jaHJvbm91cyBzdGFnZS4gKi9cbiAgcnVuU3luYyh0cmVlOiBOb2RlLCBmaWxlPzogQ29tcGF0aWJsZSkge1xuICAgIGNvbnN0IHZhbHVlID0gcmVhZFZhbHVlKGZpbGUpXG4gICAgaWYgKCF0aGlzLiNhdHRhY2goKSkgcmV0dXJuIHRoaXMuI25hdGl2ZS5ydW5TeW5jKHRyZWUsIHZhbHVlKVxuICAgIGNvbnN0IHJ1biA9IHRoaXMuI25hdGl2ZS5zdGFydFJ1bih0cmVlLCB2YWx1ZSwgdHJ1ZSlcbiAgICBjb25zdCBob3N0ID0gbmV3IEhvc3RGaWxlKHsgdmFsdWUsIHBhdGg6IHJlYWRQYXRoKGZpbGUpIH0pXG4gICAgdm9pZCBmaW5pc2hSdW4oeyBydW4sIGhvc3RzOiB0aGlzLiNob3N0cywgZmlsZTogaG9zdCwgc3luYzogdHJ1ZSwgY2FsbDogXCJydW5cIiB9KVxuICAgIHJldHVybiBydW4ucmVzdWx0KClcbiAgfVxuXG4gIC8qKiBDb21waWxlIGEgdHJlZSwgcnVubmluZyBubyB0cmFuc2Zvcm0uICovXG4gIHN0cmluZ2lmeSh0cmVlOiBOb2RlKSB7XG4gICAgdGhpcy4jYXR0YWNoKClcbiAgICByZXR1cm4gdGhpcy4jbmF0aXZlLnN0cmluZ2lmeSh0cmVlKVxuICB9XG5cbiAgLyoqIFBhcnNlLCBydW4gYW5kIGNvbXBpbGUgYSBkb2N1bWVudCwgZmluaXNoaW5nIGFzeW5jaHJvbm91cyBzdGFnZXMuICovXG4gIGFzeW5jIHByb2Nlc3MoZG9jdW1lbnQ6IENvbXBhdGlibGUpOiBQcm9taXNlPFZGaWxlPiB7XG4gICAgY29uc3QgdGV4dCA9IHJlYWRWYWx1ZShkb2N1bWVudCkgPz8gXCJcIlxuICAgIGlmICghdGhpcy4jYXR0YWNoKCkpXG4gICAgICByZXR1cm4gd2l0aFBhdGgodGhpcy4jbmF0aXZlLnByb2Nlc3ModGV4dCwgcmVhZFBhdGgoZG9jdW1lbnQpKSwgZG9jdW1lbnQpXG4gICAgY29uc3QgcnVuID0gdGhpcy4jbmF0aXZlLnN0YXJ0UHJvY2Vzcyh0ZXh0LCBmYWxzZSwgcmVhZFBhdGgoZG9jdW1lbnQpKVxuICAgIGNvbnN0IGZpbGUgPSBuZXcgSG9zdEZpbGUoeyB2YWx1ZTogcnVuLnZhbHVlKCkgPz8gdGV4dCwgcGF0aDogcmVhZFBhdGgoZG9jdW1lbnQpIH0pXG4gICAgYXdhaXQgZmluaXNoUnVuKHsgcnVuLCBob3N0czogdGhpcy4jaG9zdHMsIGZpbGUsIHN5bmM6IGZhbHNlLCBjYWxsOiBcInByb2Nlc3NcIiB9KVxuICAgIHJldHVybiB3aXRoUGF0aChtZXJnZURhdGEocnVuLnJlc3VsdCgpLCBmaWxlLmRhdGEpLCBkb2N1bWVudClcbiAgfVxuXG4gIC8qKiBQYXJzZSwgcnVuIGFuZCBjb21waWxlIGEgZG9jdW1lbnQ7IGZhaWxzIHdpdGggYGFzeW5jLWluLXN5bmNgIG9uIGFuIGFzeW5jaHJvbm91cyBzdGFnZS4gKi9cbiAgcHJvY2Vzc1N5bmMoZG9jdW1lbnQ6IENvbXBhdGlibGUpOiBWRmlsZSB7XG4gICAgY29uc3QgdGV4dCA9IHJlYWRWYWx1ZShkb2N1bWVudCkgPz8gXCJcIlxuICAgIGlmICghdGhpcy4jYXR0YWNoKCkpXG4gICAgICByZXR1cm4gd2l0aFBhdGgodGhpcy4jbmF0aXZlLnByb2Nlc3NTeW5jKHRleHQsIHJlYWRQYXRoKGRvY3VtZW50KSksIGRvY3VtZW50KVxuICAgIGNvbnN0IHJ1biA9IHRoaXMuI25hdGl2ZS5zdGFydFByb2Nlc3ModGV4dCwgdHJ1ZSwgcmVhZFBhdGgoZG9jdW1lbnQpKVxuICAgIGNvbnN0IGZpbGUgPSBuZXcgSG9zdEZpbGUoeyB2YWx1ZTogcnVuLnZhbHVlKCkgPz8gdGV4dCwgcGF0aDogcmVhZFBhdGgoZG9jdW1lbnQpIH0pXG4gICAgdm9pZCBmaW5pc2hSdW4oeyBydW4sIGhvc3RzOiB0aGlzLiNob3N0cywgZmlsZSwgc3luYzogdHJ1ZSwgY2FsbDogXCJwcm9jZXNzXCIgfSlcbiAgICByZXR1cm4gd2l0aFBhdGgobWVyZ2VEYXRhKHJ1bi5yZXN1bHQoKSwgZmlsZS5kYXRhKSwgZG9jdW1lbnQpXG4gIH1cblxuICAvLyB1bmlmaWVkJ3MgYWRkUGx1Z2luOiB0aGUgc2FtZSBhdHRhY2hlciBpcyBvbmUgcGx1Z2luLCBpdHMgb2JqZWN0IG9wdGlvbnMgbWVyZ2VkXG4gICNyZWdpc3RlcihhdHRhY2hlcjogQXR0YWNoZXIsIHBhcmFtZXRlcnM6IHVua25vd25bXSk6IEhvc3RFbnRyeSB7XG4gICAgbGV0IGlkID0gdGhpcy4jaWRzLmdldChhdHRhY2hlcilcbiAgICBpZiAoaWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgaWQgPSB0aGlzLiNpZHMuc2l6ZVxuICAgICAgdGhpcy4jaWRzLnNldChhdHRhY2hlciwgaWQpXG4gICAgICB0aGlzLiNob3N0cy5zZXQoaWQsIHsgYXR0YWNoZXIsIHBhcmFtZXRlcnMgfSlcbiAgICAgIHJldHVybiBbeyBob3N0OiBpZCB9LCBwYXJhbWV0ZXJzWzBdICE9PSBmYWxzZV1cbiAgICB9XG4gICAgY29uc3QgaG9zdCA9IHRoaXMuI2hvc3RzLmdldChpZClcbiAgICBpZiAoIWhvc3QgfHwgcGFyYW1ldGVycy5sZW5ndGggPT09IDApIHJldHVybiBbeyBob3N0OiBpZCB9XVxuICAgIGNvbnN0IFtwcmltYXJ5LCAuLi5yZXN0XSA9IHBhcmFtZXRlcnNcbiAgICBjb25zdCBtZXJnZWQgPVxuICAgICAgaXNQbGFpbk9iamVjdChob3N0LnBhcmFtZXRlcnNbMF0pICYmIGlzUGxhaW5PYmplY3QocHJpbWFyeSlcbiAgICAgICAgPyBtZXJnZU9wdGlvbnMoaG9zdC5wYXJhbWV0ZXJzWzBdLCBwcmltYXJ5KVxuICAgICAgICA6IHByaW1hcnlcbiAgICBob3N0LnBhcmFtZXRlcnMgPSBbbWVyZ2VkLCAuLi5yZXN0XVxuICAgIHJldHVybiBbeyBob3N0OiBpZCB9LCBtZXJnZWQgIT09IGZhbHNlXVxuICB9XG5cbiAgLy8gQXR0YWNoZXJzIHJ1biBvbmNlLCBiZWZvcmUgdGhlIG5hdGl2ZSBwaXBlbGluZSBmcmVlemVzLCBzbyB0aGV5IGNhbiBzdGlsbCBzZXQgZGF0YTtcbiAgLy8gd2hldGhlciBhbnkgSmF2YVNjcmlwdCBwbHVnaW4gaXMgb24gZGVjaWRlcyBpZiBydW5zIHBhdXNlIGZvciB0aGVtXG4gICNhdHRhY2goKSB7XG4gICAgaWYgKCF0aGlzLiNhdHRhY2hlZCkge1xuICAgICAgdGhpcy4jYXR0YWNoZWQgPSB0cnVlXG4gICAgICBmb3IgKGNvbnN0IGlkIG9mIHRoaXMuI25hdGl2ZS5ob3N0cygpKSB7XG4gICAgICAgIGNvbnN0IGhvc3QgPSB0aGlzLiNob3N0cy5nZXQoaWQpXG4gICAgICAgIGlmICghaG9zdCkgY29udGludWVcbiAgICAgICAgY29uc3QgW3ByaW1hcnksIC4uLnJlc3RdID0gaG9zdC5wYXJhbWV0ZXJzXG4gICAgICAgIGNvbnN0IHBhcmFtZXRlcnMgPSBwcmltYXJ5ID09PSB0cnVlID8gW3VuZGVmaW5lZCwgLi4ucmVzdF0gOiBob3N0LnBhcmFtZXRlcnNcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtZXI6IHVua25vd24gPSBSZWZsZWN0LmFwcGx5KGhvc3QuYXR0YWNoZXIsIHRoaXMsIHBhcmFtZXRlcnMpXG4gICAgICAgIGlmIChpc1RyYW5zZm9ybWVyKHRyYW5zZm9ybWVyKSkgaG9zdC50cmFuc2Zvcm1lciA9IHRyYW5zZm9ybWVyXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLiNuYXRpdmUuaG9zdHMoKS5sZW5ndGggPiAwXG4gIH1cbn1cblxuZnVuY3Rpb24gcmVhZFZhbHVlKGZpbGU6IENvbXBhdGlibGUgfCB1bmRlZmluZWQpIHtcbiAgcmV0dXJuIHR5cGVvZiBmaWxlID09PSBcInN0cmluZ1wiID8gZmlsZSA6IGZpbGU/LnZhbHVlXG59XG5cbmZ1bmN0aW9uIHJlYWRQYXRoKGZpbGU6IENvbXBhdGlibGUgfCB1bmRlZmluZWQpIHtcbiAgcmV0dXJuIHR5cGVvZiBmaWxlID09PSBcInN0cmluZ1wiID8gdW5kZWZpbmVkIDogZmlsZT8ucGF0aFxufVxuXG4vLyBOYXRpdmUgc3RhZ2VzJyBkYXRhIGZpcnN0LCB0aGVuIHdoYXQgSmF2YVNjcmlwdCBwbHVnaW5zIHN0b3JlZCBvdmVyIGl0XG5mdW5jdGlvbiBtZXJnZURhdGEocmVzdWx0OiBWRmlsZSwgZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBWRmlsZSB7XG4gIHJldHVybiB7IC4uLnJlc3VsdCwgZGF0YTogeyAuLi5yZXN1bHQuZGF0YSwgLi4uZGF0YSB9IH1cbn1cblxuZnVuY3Rpb24gd2l0aFBhdGgoZmlsZTogVkZpbGUsIGRvY3VtZW50OiBDb21wYXRpYmxlKSB7XG4gIGNvbnN0IHBhdGggPSByZWFkUGF0aChkb2N1bWVudClcbiAgcmV0dXJuIHBhdGggPT09IHVuZGVmaW5lZCA/IGZpbGUgOiB7IC4uLmZpbGUsIHBhdGggfVxufVxuIl19
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbW9kZWxzL3Byb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUN6RSxPQUFPLEVBQWtCLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFBO0FBQzFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUE7QUFNL0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUVyQzs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sU0FBUztJQUNwQixPQUFPLENBQXNCO0lBQzdCLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQTtJQUNsQyxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQWdCLENBQUE7SUFDaEMsU0FBUyxHQUFHLEtBQUssQ0FBQTtJQUNqQixPQUFPLEdBQUcsS0FBSyxDQUFBO0lBRWYsWUFBWSxNQUE0QjtRQUN0QyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQTtJQUN2QixDQUFDO0lBV0QsbUZBQW1GO0lBQ25GLEdBQUcsQ0FDRCxLQUE0RCxFQUM1RCxHQUFHLE9BQWtCO1FBRXJCLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDbEQsT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDO1FBQ0QsTUFBTSxRQUFRLEdBQUcsQ0FBQyxRQUFrQixFQUFFLFVBQXFCLEVBQUUsRUFBRSxDQUM3RCxJQUFJ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ciB9IGZyb20gXCIuLi9hY3Rpb25zL2F0dGFjaGVyL2NoZWNrLnRzXCJcbmltcG9ydCB7IGlzUGxhaW5PYmplY3QsIG1lcmdlT3B0aW9ucyB9IGZyb20gXCIuLi9hY3Rpb25zL29wdGlvbnMvbWVyZ2UudHNcIlxuaW1wb3J0IHsgdHlwZSBIb3N0RW50cnksIG1hcFBsdWdnYWJsZSB9IGZyb20gXCIuLi9hY3Rpb25zL3BsdWdnYWJsZS9tYXAudHNcIlxuaW1wb3J0IHsgZmluaXNoUnVuIH0gZnJvbSBcIi4uL2FjdGlvbnMvcnVuL2ZpbmlzaC50c1wiXG5pbXBvcnQgeyBpc1RyYW5zZm9ybWVyIH0gZnJvbSBcIi4uL2FjdGlvbnMvdHJhbnNmb3JtZXIvY2hlY2sudHNcIlxuaW1wb3J0IHR5cGUgeyBOb2RlIGFzIFVuaXN0Tm9kZSB9IGZyb20gXCJ1bmlzdFwiXG5pbXBvcnQgdHlwZSB7IE5hdGl2ZVBpcGVsaW5lIH0gZnJvbSBcIi4vYWRkb24udHNcIlxuaW1wb3J0IHR5cGUgeyBDb21wYXRpYmxlLCBOb2RlLCBWRmlsZSB9IGZyb20gXCIuL2ZpbGUudHNcIlxuaW1wb3J0IHR5cGUgeyBIb3N0IH0gZnJvbSBcIi4vaG9zdC50c1wiXG5pbXBvcnQgdHlwZSB7IEF0dGFjaGVyLCBQYXJzZXIsIFBsdWdnYWJsZSwgUGx1Z2dhYmxlTGlzdCwgUHJlc2V0IH0gZnJvbSBcIi4vcGx1Z2luLnRzXCJcbmltcG9ydCB7IEhvc3RGaWxlIH0gZnJvbSBcIi4vdmZpbGUudHNcIlxuXG4vKipcbiAqIHVuaWZpZWQncyBwcm9jZXNzb3Igb3ZlciB0aGUgbmF0aXZlIHBpcGVsaW5lOyBldmVyeSBjYWxsIGlzIHRoZSBjcmF0ZSdzLCBleGNlcHQgdGhhdFxuICogSmF2YVNjcmlwdCBwbHVnaW5zIHJ1biBoZXJlIHdoZW4gYSBydW4gcGF1c2VzIGJlZm9yZSB0aGVtLlxuICovXG5leHBvcnQgY2xhc3MgUHJvY2Vzc29yPFRyZWUgZXh0ZW5kcyBVbmlzdE5vZGUgPSBOb2RlPiB7XG4gICNuYXRpdmU6IE5hdGl2ZVBpcGVsaW5lPFRyZWU+XG4gICNpZHMgPSBuZXcgTWFwPEF0dGFjaGVyLCBudW1iZXI+KClcbiAgI2hvc3RzID0gbmV3IE1hcDxudW1iZXIsIEhvc3Q+KClcbiAgI2F0dGFjaGVkID0gZmFsc2VcbiAgI2Zyb3plbiA9IGZhbHNlXG5cbiAgY29uc3RydWN0b3IobmF0aXZlOiBOYXRpdmVQaXBlbGluZTxUcmVlPikge1xuICAgIHRoaXMuI25hdGl2ZSA9IG5hdGl2ZVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIHBsdWdpbiwgYSBsaXN0IG9mIHRoZW0gb3IgYSBwcmVzZXQ7IGEgcGx1Z2luIHVzZWQgYWdhaW4gaXMgcmVjb25maWd1cmVkLiBBXG4gICAqIEphdmFTY3JpcHQgcGx1Z2luIGlzIGFuIGF0dGFjaGVyLCBjYWxsZWQgd2l0aCB0aGUgcHJvY2Vzc29yIGFuZCBpdHMgb3B0aW9ucyBhdCBmcmVlemUuXG4gICAqIEEgcGFyc2VyLCBzdWNoIGFzIGBtZC5wYXJzZSgpYCwgdHlwZXMgdGhlIHRyZWUgYHBhcnNlYCByZXR1cm5zLlxuICAgKi9cbiAgdXNlPFZhbHVlIGV4dGVuZHMgUGx1Z2dhYmxlIHwgUGx1Z2dhYmxlTGlzdCB8IFByZXNldCB8IG51bGwgfCB1bmRlZmluZWQ+KFxuICAgIHZhbHVlOiBWYWx1ZSxcbiAgICAuLi5vcHRpb25zOiB1bmtub3duW11cbiAgKTogUHJvY2Vzc29yPFBhcnNlZFRyZWU8VmFsdWUsIFRyZWU+PlxuICAvLyBhIHBhcnNlciByZXR5cGVzIHRoaXMgc2FtZSBwcm9jZXNzb3I6IHRoZSB0cmVlIGl0IHBhcnNlcyBsaXZlcyBpbiB0aGUgdHlwZSBhbG9uZVxuICB1c2UoXG4gICAgdmFsdWU6IFBsdWdnYWJsZSB8IFBsdWdnYWJsZUxpc3QgfCBQcmVzZXQgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIC4uLm9wdGlvbnM6IHVua25vd25bXVxuICApOiBQcm9jZXNzb3I8VW5pc3ROb2RlPiB7XG4gICAgaWYgKGlzQXR0YWNoZXIodmFsdWUpKSB7XG4gICAgICB0aGlzLiNuYXRpdmUudXNlKFt0aGlzLiNyZWdpc3Rlcih2YWx1ZSwgb3B0aW9ucyldKVxuICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG4gICAgY29uc3QgcmVnaXN0ZXIgPSAoYXR0YWNoZXI6IEF0dGFjaGVyLCBwYXJhbWV0ZXJzOiB1bmtub3duW10pID0+XG4gICAgICB0aGlzLiNyZWdpc3RlcihhdHRhY2hlciwgcGFyYW1ldGVycylcbiAgICB0aGlzLiNuYXRpdmUudXNlKG1hcFBsdWdnYWJsZSh2YWx1ZSA/PyBudWxsLCByZWdpc3RlciksIG9wdGlvbnNbMF0pXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8qKiBBbGwgZGF0YSwgb3IgdGhlIHZhbHVlIHVuZGVyIGBrZXlgLiAqL1xuICBkYXRhKCk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gIGRhdGEoa2V5OiBzdHJpbmcpOiB1bmtub3duXG4gIC8qKiBTZXQgdGhlIHZhbHVlIHVuZGVyIGBrZXlgLCBvciByZXBsYWNlIGFsbCBkYXRhLiAqL1xuICBkYXRhKGtleTogc3RyaW5nLCB2YWx1ZTogdW5rbm93bik6IHRoaXNcbiAgZGF0YShkYXRhc2V0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHRoaXNcbiAgZGF0YShrZXk/OiBzdHJpbmcgfCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiwgLi4udmFsdWU6IHVua25vd25bXSkge1xuICAgIGlmICh0eXBlb2Yga2V5ID09PSBcIm9iamVjdFwiKSB7XG4gICAgICB0aGlzLiNuYXRpdmUucmVwbGFjZURhdGEoa2V5KVxuICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG4gICAgaWYgKGtleSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuI25hdGl2ZS5zZXREYXRhKGtleSwgdmFsdWVbMF0pXG4gICAgICByZXR1cm4gdGhpc1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy4jbmF0aXZlLmRhdGEoa2V5KVxuICB9XG5cbiAgLyoqIEF0dGFjaCBldmVyeSBwbHVnaW47IGxhdGVyIGB1c2VgIGFuZCBgZGF0YWAgc2V0dGVycyBmYWlsLiAqL1xuICBmcmVlemUoKSB7XG4gICAgdGhpcy4jYXR0YWNoKClcbiAgICB0aGlzLiNmcmVlemVOYXRpdmUoKVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKiogUGFyc2UgYSBkb2N1bWVudCBpbnRvIGEgdHJlZS4gKi9cbiAgcGFyc2UoZG9jdW1lbnQ6IENvbXBhdGlibGUpIHtcbiAgICB0aGlzLiNhdHRhY2goKVxuICAgIHJldHVybiB0aGlzLiNuYXRpdmUucGFyc2UocmVhZFZhbHVlKGRvY3VtZW50KSA/PyBcIlwiKVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1biB0aGUgdHJhbnNmb3JtcywgZmluaXNoaW5nIGFzeW5jaHJvbm91cyBzdGFnZXM7IGBmaWxlYCwgdGhlIHRleHQgYHRyZWVgIHdhcyBwYXJzZWRcbiAgICogZnJvbSwgbGV0cyBicmlkZ2VzIHJlYWQgaXQgYW5kIGtlZXBzIHBvc2l0aW9ucyBpbiB0aGUgcmVzdWx0LlxuICAgKi9cbiAgYXN5bmMgcnVuKHRyZWU6IFVuaXN0Tm9kZSwgZmlsZT86IENvbXBhdGlibGUpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHJlYWRWYWx1ZShmaWxlKVxuICAgIGlmICghdGhpcy4jYXR0YWNoKCkpIHJldHVybiB0aGlzLiNuYXRpdmUucnVuKHRyZWUsIHZhbHVlKVxuICAgIGNvbnN0IHJ1biA9IHRoaXMuI25hdGl2ZS5zdGFydFJ1bih0cmVlLCB2YWx1ZSwgZmFsc2UpXG4gICAgY29uc3QgaG9zdCA9IG5ldyBIb3N0RmlsZSh7IHZhbHVlLCBwYXRoOiByZWFkUGF0aChmaWxlKSB9KVxuICAgIGF3YWl0IGZpbmlzaFJ1bih7IHJ1biwgaG9zdHM6IHRoaXMuI2hvc3RzLCBmaWxlOiBob3N0LCBzeW5jOiBmYWxzZSwgY2FsbDogXCJydW5cIiB9KVxuICAgIHJldHVybiBydW4ucmVzdWx0KClcbiAgfVxuXG4gIC8qKiBSdW4gdGhlIHRyYW5zZm9ybXM7IGZhaWxzIHdpdGggYGFzeW5jLWluLXN5bmNgIG9uIGFuIGFzeW5jaHJvbm91cyBzdGFnZS4gKi9cbiAgcnVuU3luYyh0cmVlOiBVbmlzdE5vZGUsIGZpbGU/OiBDb21wYXRpYmxlKSB7XG4gICAgY29uc3QgdmFsdWUgPSByZWFkVmFsdWUoZmlsZSlcbiAgICBpZiAoIXRoaXMuI2F0dGFjaCgpKSByZXR1cm4gdGhpcy4jbmF0aXZlLnJ1blN5bmModHJlZSwgdmFsdWUpXG4gICAgY29uc3QgcnVuID0gdGhpcy4jbmF0aXZlLnN0YXJ0UnVuKHRyZWUsIHZhbHVlLCB0cnVlKVxuICAgIGNvbnN0IGhvc3QgPSBuZXcgSG9zdEZpbGUoeyB2YWx1ZSwgcGF0aDogcmVhZFBhdGgoZmlsZSkgfSlcbiAgICB2b2lkIGZpbmlzaFJ1bih7IHJ1biwgaG9zdHM6IHRoaXMuI2hvc3RzLCBmaWxlOiBob3N0LCBzeW5jOiB0cnVlLCBjYWxsOiBcInJ1blwiIH0pXG4gICAgcmV0dXJuIHJ1bi5yZXN1bHQoKVxuICB9XG5cbiAgLyoqIENvbXBpbGUgYSB0cmVlLCBydW5uaW5nIG5vIHRyYW5zZm9ybS4gKi9cbiAgc3RyaW5naWZ5KHRyZWU6IFVuaXN0Tm9kZSkge1xuICAgIHRoaXMuI2F0dGFjaCgpXG4gICAgcmV0dXJuIHRoaXMuI25hdGl2ZS5zdHJpbmdpZnkodHJlZSlcbiAgfVxuXG4gIC8qKiBQYXJzZSwgcnVuIGFuZCBjb21waWxlIGEgZG9jdW1lbnQsIGZpbmlzaGluZyBhc3luY2hyb25vdXMgc3RhZ2VzLiAqL1xuICBhc3luYyBwcm9jZXNzKGRvY3VtZW50OiBDb21wYXRpYmxlKTogUHJvbWlzZTxWRmlsZT4ge1xuICAgIGNvbnN0IHRleHQgPSByZWFkVmFsdWUoZG9jdW1lbnQpID8/IFwiXCJcbiAgICBpZiAoIXRoaXMuI2F0dGFjaCgpKSB7XG4gICAgICB0aGlzLiNmcmVlemVOYXRpdmUoKVxuICAgICAgY29uc3Qgb3V0Y29tZSA9IGF3YWl0IHRoaXMuI25hdGl2ZS5wcm9jZXNzKHRleHQsIHJlYWRQYXRoKGRvY3VtZW50KSlcbiAgICAgIGlmIChvdXRjb21lLmVycm9yKVxuICAgICAgICB0aHJvdyBPYmplY3QuYXNzaWduKG5ldyBFcnJvcihvdXRjb21lLmVycm9yLm1lc3NhZ2UpLCBvdXRjb21lLmVycm9yKVxuICAgICAgaWYgKCFvdXRjb21lLmZpbGUpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInByb2Nlc3Mgc2V0dGxlZCB3aXRoIG5laXRoZXIgYSBmaWxlIG5vciBhbiBlcnJvclwiKVxuICAgICAgcmV0dXJuIHdpdGhQYXRoKG91dGNvbWUuZmlsZSwgZG9jdW1lbnQpXG4gICAgfVxuICAgIGNvbnN0IHJ1biA9IHRoaXMuI25hdGl2ZS5zdGFydFByb2Nlc3ModGV4dCwgZmFsc2UsIHJlYWRQYXRoKGRvY3VtZW50KSlcbiAgICBjb25zdCBmaWxlID0gbmV3IEhvc3RGaWxlKHsgdmFsdWU6IHJ1bi52YWx1ZSgpID8/IHRleHQsIHBhdGg6IHJlYWRQYXRoKGRvY3VtZW50KSB9KVxuICAgIGF3YWl0IGZpbmlzaFJ1bih7IHJ1biwgaG9zdHM6IHRoaXMuI2hvc3RzLCBmaWxlLCBzeW5jOiBmYWxzZSwgY2FsbDogXCJwcm9jZXNzXCIgfSlcbiAgICByZXR1cm4gd2l0aFBhdGgobWVyZ2VEYXRhKHJ1bi5yZXN1bHQoKSwgZmlsZS5kYXRhKSwgZG9jdW1lbnQpXG4gIH1cblxuICAvKiogUGFyc2UsIHJ1biBhbmQgY29tcGlsZSBhIGRvY3VtZW50OyBmYWlscyB3aXRoIGBhc3luYy1pbi1zeW5jYCBvbiBhbiBhc3luY2hyb25vdXMgc3RhZ2UuICovXG4gIHByb2Nlc3NTeW5jKGRvY3VtZW50OiBDb21wYXRpYmxlKTogVkZpbGUge1xuICAgIGNvbnN0IHRleHQgPSByZWFkVmFsdWUoZG9jdW1lbnQpID8/IFwiXCJcbiAgICBpZiAoIXRoaXMuI2F0dGFjaCgpKVxuICAgICAgcmV0dXJuIHdpdGhQYXRoKHRoaXMuI25hdGl2ZS5wcm9jZXNzU3luYyh0ZXh0LCByZWFkUGF0aChkb2N1bWVudCkpLCBkb2N1bWVudClcbiAgICBjb25zdCBydW4gPSB0aGlzLiNuYXRpdmUuc3RhcnRQcm9jZXNzKHRleHQsIHRydWUsIHJlYWRQYXRoKGRvY3VtZW50KSlcbiAgICBjb25zdCBmaWxlID0gbmV3IEhvc3RGaWxlKHsgdmFsdWU6IHJ1bi52YWx1ZSgpID8/IHRleHQsIHBhdGg6IHJlYWRQYXRoKGRvY3VtZW50KSB9KVxuICAgIHZvaWQgZmluaXNoUnVuKHsgcnVuLCBob3N0czogdGhpcy4jaG9zdHMsIGZpbGUsIHN5bmM6IHRydWUsIGNhbGw6IFwicHJvY2Vzc1wiIH0pXG4gICAgcmV0dXJuIHdpdGhQYXRoKG1lcmdlRGF0YShydW4ucmVzdWx0KCksIGZpbGUuZGF0YSksIGRvY3VtZW50KVxuICB9XG5cbiAgLy8gT25jZSBvbmx5OiBgZnJlZXplYCBib3Jyb3dzIHRoZSBuYXRpdmUgcGlwZWxpbmUgbXV0YWJseSwgd2hpY2ggbmFwaSByZWZ1c2VzIHdoaWxlIGFuXG4gIC8vIGFzeW5jIGBwcm9jZXNzYCBzdGlsbCBob2xkcyBpdFxuICAjZnJlZXplTmF0aXZlKCkge1xuICAgIGlmICh0aGlzLiNmcm96ZW4pIHJldHVyblxuICAgIHRoaXMuI2Zyb3plbiA9IHRydWVcbiAgICB0aGlzLiNuYXRpdmUuZnJlZXplKClcbiAgfVxuXG4gIC8vIHVuaWZpZWQncyBhZGRQbHVnaW46IHRoZSBzYW1lIGF0dGFjaGVyIGlzIG9uZSBwbHVnaW4sIGl0cyBvYmplY3Qgb3B0aW9ucyBtZXJnZWRcbiAgI3JlZ2lzdGVyKGF0dGFjaGVyOiBBdHRhY2hlciwgcGFyYW1ldGVyczogdW5rbm93bltdKTogSG9zdEVudHJ5IHtcbiAgICBsZXQgaWQgPSB0aGlzLiNpZHMuZ2V0KGF0dGFjaGVyKVxuICAgIGlmIChpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZCA9IHRoaXMuI2lkcy5zaXplXG4gICAgICB0aGlzLiNpZHMuc2V0KGF0dGFjaGVyLCBpZClcbiAgICAgIHRoaXMuI2hvc3RzLnNldChpZCwgeyBhdHRhY2hlciwgcGFyYW1ldGVycyB9KVxuICAgICAgcmV0dXJuIFt7IGhvc3Q6IGlkIH0sIHBhcmFtZXRlcnNbMF0gIT09IGZhbHNlXVxuICAgIH1cbiAgICBjb25zdCBob3N0ID0gdGhpcy4jaG9zdHMuZ2V0KGlkKVxuICAgIGlmICghaG9zdCB8fCBwYXJhbWV0ZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIFt7IGhvc3Q6IGlkIH1dXG4gICAgY29uc3QgW3ByaW1hcnksIC4uLnJlc3RdID0gcGFyYW1ldGVyc1xuICAgIGNvbnN0IG1lcmdlZCA9XG4gICAgICBpc1BsYWluT2JqZWN0KGhvc3QucGFyYW1ldGVyc1swXSkgJiYgaXNQbGFpbk9iamVjdChwcmltYXJ5KVxuICAgICAgICA/IG1lcmdlT3B0aW9ucyhob3N0LnBhcmFtZXRlcnNbMF0sIHByaW1hcnkpXG4gICAgICAgIDogcHJpbWFyeVxuICAgIGhvc3QucGFyYW1ldGVycyA9IFttZXJnZWQsIC4uLnJlc3RdXG4gICAgcmV0dXJuIFt7IGhvc3Q6IGlkIH0sIG1lcmdlZCAhPT0gZmFsc2VdXG4gIH1cblxuICAvLyBBdHRhY2hlcnMgcnVuIG9uY2UsIGJlZm9yZSB0aGUgbmF0aXZlIHBpcGVsaW5lIGZyZWV6ZXMsIHNvIHRoZXkgY2FuIHN0aWxsIHNldCBkYXRhO1xuICAvLyB3aGV0aGVyIGFueSBKYXZhU2NyaXB0IHBsdWdpbiBpcyBvbiBkZWNpZGVzIGlmIHJ1bnMgcGF1c2UgZm9yIHRoZW1cbiAgI2F0dGFjaCgpIHtcbiAgICBpZiAoIXRoaXMuI2F0dGFjaGVkKSB7XG4gICAgICB0aGlzLiNhdHRhY2hlZCA9IHRydWVcbiAgICAgIGZvciAoY29uc3QgaWQgb2YgdGhpcy4jbmF0aXZlLmhvc3RzKCkpIHtcbiAgICAgICAgY29uc3QgaG9zdCA9IHRoaXMuI2hvc3RzLmdldChpZClcbiAgICAgICAgaWYgKCFob3N0KSBjb250aW51ZVxuICAgICAgICBjb25zdCBbcHJpbWFyeSwgLi4ucmVzdF0gPSBob3N0LnBhcmFtZXRlcnNcbiAgICAgICAgY29uc3QgcGFyYW1ldGVycyA9IHByaW1hcnkgPT09IHRydWUgPyBbdW5kZWZpbmVkLCAuLi5yZXN0XSA6IGhvc3QucGFyYW1ldGVyc1xuICAgICAgICBjb25zdCB0cmFuc2Zvcm1lcjogdW5rbm93biA9IFJlZmxlY3QuYXBwbHkoaG9zdC5hdHRhY2hlciwgdGhpcywgcGFyYW1ldGVycylcbiAgICAgICAgaWYgKGlzVHJhbnNmb3JtZXIodHJhbnNmb3JtZXIpKSBob3N0LnRyYW5zZm9ybWVyID0gdHJhbnNmb3JtZXJcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuI25hdGl2ZS5ob3N0cygpLmxlbmd0aCA+IDBcbiAgfVxufVxuXG4vLyBBIHBsdWdpbiB3aXRob3V0IHRoZSBtYXJrZXIgaW5mZXJzIGB1bmtub3duYCBmcm9tIHRoZSBvcHRpb25hbCBrZXksIGtlZXBpbmcgdGhlIHRyZWVcbnR5cGUgUGFyc2VkVHJlZTxWYWx1ZSwgQ3VycmVudD4gPVxuICBWYWx1ZSBleHRlbmRzIFBhcnNlcjxpbmZlciBQYXJzZWQ+XG4gICAgPyBQYXJzZWQgZXh0ZW5kcyBVbmlzdE5vZGVcbiAgICAgID8gUGFyc2VkXG4gICAgICA6IEN1cnJlbnRcbiAgICA6IEN1cnJlbnRcblxuZnVuY3Rpb24gcmVhZFZhbHVlKGZpbGU6IENvbXBhdGlibGUgfCB1bmRlZmluZWQpIHtcbiAgcmV0dXJuIHR5cGVvZiBmaWxlID09PSBcInN0cmluZ1wiID8gZmlsZSA6IGZpbGU/LnZhbHVlXG59XG5cbmZ1bmN0aW9uIHJlYWRQYXRoKGZpbGU6IENvbXBhdGlibGUgfCB1bmRlZmluZWQpIHtcbiAgcmV0dXJuIHR5cGVvZiBmaWxlID09PSBcInN0cmluZ1wiID8gdW5kZWZpbmVkIDogZmlsZT8ucGF0aFxufVxuXG4vLyBOYXRpdmUgc3RhZ2VzJyBkYXRhIGZpcnN0LCB0aGVuIHdoYXQgSmF2YVNjcmlwdCBwbHVnaW5zIHN0b3JlZCBvdmVyIGl0XG5mdW5jdGlvbiBtZXJnZURhdGEocmVzdWx0OiBWRmlsZSwgZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBWRmlsZSB7XG4gIHJldHVybiB7IC4uLnJlc3VsdCwgZGF0YTogeyAuLi5yZXN1bHQuZGF0YSwgLi4uZGF0YSB9IH1cbn1cblxuZnVuY3Rpb24gd2l0aFBhdGgoZmlsZTogVkZpbGUsIGRvY3VtZW50OiBDb21wYXRpYmxlKSB7XG4gIGNvbnN0IHBhdGggPSByZWFkUGF0aChkb2N1bWVudClcbiAgcmV0dXJuIHBhdGggPT09IHVuZGVmaW5lZCA/IGZpbGUgOiB7IC4uLmZpbGUsIHBhdGggfVxufVxuIl19
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "textlane",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Rust-native text processing pipeline — a unified replacement with native and JavaScript plugins",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ast",
|
|
@@ -31,15 +31,21 @@
|
|
|
31
31
|
"./mdx": "./build/generated/mdx.js",
|
|
32
32
|
"./nl": "./build/generated/nl.js"
|
|
33
33
|
},
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"@types/hast": "^3.0.5",
|
|
36
|
+
"@types/mdast": "^4.0.4",
|
|
37
|
+
"@types/nlcst": "^2.0.3",
|
|
38
|
+
"@types/unist": "^3.0.3"
|
|
39
|
+
},
|
|
34
40
|
"engines": {
|
|
35
41
|
"node": ">=20"
|
|
36
42
|
},
|
|
37
43
|
"optionalDependencies": {
|
|
38
|
-
"@textlane/linux-x64": "0.
|
|
39
|
-
"@textlane/linux-arm64": "0.
|
|
40
|
-
"@textlane/darwin-x64": "0.
|
|
41
|
-
"@textlane/darwin-arm64": "0.
|
|
42
|
-
"@textlane/win32-x64": "0.
|
|
43
|
-
"@textlane/win32-arm64": "0.
|
|
44
|
+
"@textlane/linux-x64": "0.3.0",
|
|
45
|
+
"@textlane/linux-arm64": "0.3.0",
|
|
46
|
+
"@textlane/darwin-x64": "0.3.0",
|
|
47
|
+
"@textlane/darwin-arm64": "0.3.0",
|
|
48
|
+
"@textlane/win32-x64": "0.3.0",
|
|
49
|
+
"@textlane/win32-arm64": "0.3.0"
|
|
44
50
|
}
|
|
45
51
|
}
|
|
@@ -66,7 +66,11 @@ A domain function returns a descriptor, `{ name: "md.toHtml", options }`, typed
|
|
|
66
66
|
crate. The processor follows unified: `use(plugin | [plugin, options] | preset | list)`,
|
|
67
67
|
`data(key?, value?)`, `freeze()`, `parse(text)`, `run(tree, file?)` (Promise),
|
|
68
68
|
`runSync(tree, file?)`, `stringify(tree)`, `process(text)` (Promise) and `processSync(text)`.
|
|
69
|
-
Trees are plain unist JSON objects.
|
|
69
|
+
Trees are plain unist JSON objects: after `use(md.parse())`, `html.parse()` or `nl.parse()`,
|
|
70
|
+
`parse` is typed as `@types/mdast`, `hast` or `nlcst`'s `Root`, and `run` and `stringify` take
|
|
71
|
+
any unist node, so no cast is needed between them and unified utilities. Without
|
|
72
|
+
JavaScript plugins, `process` runs off the main thread: process many documents with
|
|
73
|
+
`Promise.all` over one frozen processor, not one by one.
|
|
70
74
|
|
|
71
75
|
## Python
|
|
72
76
|
|
|
@@ -87,8 +91,9 @@ file["value"] # "<h1>hi</h1>"
|
|
|
87
91
|
Functions are snake_case (`md.to_html`, `nl.indefinite_article`); their options stay the
|
|
88
92
|
camelCase keys the plugin takes, typed as `TypedDict`s. `process(text)` and `run(tree)`
|
|
89
93
|
return directly; `await processor.aprocess(text)` and `await processor.arun(tree)` are their
|
|
90
|
-
coroutines. A
|
|
91
|
-
|
|
94
|
+
coroutines. A file and a tree are dicts. Without Python plugins, `process` releases the GIL:
|
|
95
|
+
process many documents through one frozen processor from a thread pool, or `asyncio.gather`
|
|
96
|
+
their `aprocess` calls.
|
|
92
97
|
|
|
93
98
|
## Rust
|
|
94
99
|
|
|
@@ -142,6 +147,9 @@ the case: `unknown-plugin`, `invalid-options`, `missing-parser`, `missing-compil
|
|
|
142
147
|
`md.toc`: `heading` and `skip` are regex source strings, `parents` a JSON unist-util-is
|
|
143
148
|
test, never a function; JavaScript lookaround and back references fail with
|
|
144
149
|
`invalid-options`.
|
|
150
|
+
- Shifting heading levels (remark/rehype-shift-heading) is `md.shiftHeading({ shift: -1 })`,
|
|
151
|
+
clamped to 1–6; `dropTitle: true` first drops a leading h1 (past frontmatter and ESM), as a
|
|
152
|
+
page whose title renders separately needs.
|
|
145
153
|
- Asset and page URLs relative to a Markdown file are `md.pathRewrite({ root, base, pages,
|
|
146
154
|
markdownLinks })`; pass the document as `{ value, path }` so it knows where the file lives.
|
|
147
155
|
- remark-stringify reads `settings` from processor data; textlane's `md.stringify` takes its
|