@dbx-tools/shared-email-template 0.9.132 → 0.9.133

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/index.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  // Hand edits are overwritten on the next watch; this file is read-only.
4
4
 
5
5
  export const PACKAGE_IDENTIFIER = "@dbx-tools/shared-email-template";
6
- export const PACKAGE_VERSION = "0.9.132";
6
+ export const PACKAGE_VERSION = "0.9.133";
7
7
  export * as template from "./src/template.tsx";
8
8
  export { emailBrandFromContext, defaultEmailBrand, resolveEmailBrand, normalizeEmailMarkdown, EmailBody, EmailCard, EmailDocument } from "./src/template.tsx";
9
9
  export type { EmailBrand, ResolvedEmailBrand, EmailBodyProps, EmailDocumentProps } from "./src/template.tsx";
package/lib/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export declare const PACKAGE_IDENTIFIER = "@dbx-tools/shared-email-template";
2
- export declare const PACKAGE_VERSION = "0.9.132";
2
+ export declare const PACKAGE_VERSION = "0.9.133";
3
3
  export * as template from "./src/template.tsx";
4
4
  export { emailBrandFromContext, defaultEmailBrand, resolveEmailBrand, normalizeEmailMarkdown, EmailBody, EmailCard, EmailDocument } from "./src/template.tsx";
5
5
  export type { EmailBrand, ResolvedEmailBrand, EmailBodyProps, EmailDocumentProps } from "./src/template.tsx";
package/lib/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  // Regenerated from the exporting modules in ./src.
3
3
  // Hand edits are overwritten on the next watch; this file is read-only.
4
4
  export const PACKAGE_IDENTIFIER = "@dbx-tools/shared-email-template";
5
- export const PACKAGE_VERSION = "0.9.132";
5
+ export const PACKAGE_VERSION = "0.9.133";
6
6
  export * as template from "./src/template.js";
7
7
  export { emailBrandFromContext, defaultEmailBrand, resolveEmailBrand, normalizeEmailMarkdown, EmailBody, EmailCard, EmailDocument } from "./src/template.js";
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxrQ0FBa0MsQ0FBQztBQUNyRSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW9CLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLHNCQUFzQixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHRU5FUkFURUQgYnkgcHJvamVuIHdhdGNoIC0gRE8gTk9UIEVESVQuXG4vLyBSZWdlbmVyYXRlZCBmcm9tIHRoZSBleHBvcnRpbmcgbW9kdWxlcyBpbiAuL3NyYy5cbi8vIEhhbmQgZWRpdHMgYXJlIG92ZXJ3cml0dGVuIG9uIHRoZSBuZXh0IHdhdGNoOyB0aGlzIGZpbGUgaXMgcmVhZC1vbmx5LlxuXG5leHBvcnQgY29uc3QgUEFDS0FHRV9JREVOVElGSUVSID0gXCJAZGJ4LXRvb2xzL3NoYXJlZC1lbWFpbC10ZW1wbGF0ZVwiO1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfVkVSU0lPTiA9IFwiMC45LjEzMlwiO1xuZXhwb3J0ICogYXMgdGVtcGxhdGUgZnJvbSBcIi4vc3JjL3RlbXBsYXRlLnRzeFwiO1xuZXhwb3J0IHsgZW1haWxCcmFuZEZyb21Db250ZXh0LCBkZWZhdWx0RW1haWxCcmFuZCwgcmVzb2x2ZUVtYWlsQnJhbmQsIG5vcm1hbGl6ZUVtYWlsTWFya2Rvd24sIEVtYWlsQm9keSwgRW1haWxDYXJkLCBFbWFpbERvY3VtZW50IH0gZnJvbSBcIi4vc3JjL3RlbXBsYXRlLnRzeFwiO1xuZXhwb3J0IHR5cGUgeyBFbWFpbEJyYW5kLCBSZXNvbHZlZEVtYWlsQnJhbmQsIEVtYWlsQm9keVByb3BzLCBFbWFpbERvY3VtZW50UHJvcHMgfSBmcm9tIFwiLi9zcmMvdGVtcGxhdGUudHN4XCI7XG4iXX0=
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxrQ0FBa0MsQ0FBQztBQUNyRSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW9CLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLHNCQUFzQixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHRU5FUkFURUQgYnkgcHJvamVuIHdhdGNoIC0gRE8gTk9UIEVESVQuXG4vLyBSZWdlbmVyYXRlZCBmcm9tIHRoZSBleHBvcnRpbmcgbW9kdWxlcyBpbiAuL3NyYy5cbi8vIEhhbmQgZWRpdHMgYXJlIG92ZXJ3cml0dGVuIG9uIHRoZSBuZXh0IHdhdGNoOyB0aGlzIGZpbGUgaXMgcmVhZC1vbmx5LlxuXG5leHBvcnQgY29uc3QgUEFDS0FHRV9JREVOVElGSUVSID0gXCJAZGJ4LXRvb2xzL3NoYXJlZC1lbWFpbC10ZW1wbGF0ZVwiO1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfVkVSU0lPTiA9IFwiMC45LjEzM1wiO1xuZXhwb3J0ICogYXMgdGVtcGxhdGUgZnJvbSBcIi4vc3JjL3RlbXBsYXRlLnRzeFwiO1xuZXhwb3J0IHsgZW1haWxCcmFuZEZyb21Db250ZXh0LCBkZWZhdWx0RW1haWxCcmFuZCwgcmVzb2x2ZUVtYWlsQnJhbmQsIG5vcm1hbGl6ZUVtYWlsTWFya2Rvd24sIEVtYWlsQm9keSwgRW1haWxDYXJkLCBFbWFpbERvY3VtZW50IH0gZnJvbSBcIi4vc3JjL3RlbXBsYXRlLnRzeFwiO1xuZXhwb3J0IHR5cGUgeyBFbWFpbEJyYW5kLCBSZXNvbHZlZEVtYWlsQnJhbmQsIEVtYWlsQm9keVByb3BzLCBFbWFpbERvY3VtZW50UHJvcHMgfSBmcm9tIFwiLi9zcmMvdGVtcGxhdGUudHN4XCI7XG4iXX0=
@@ -169,27 +169,26 @@ export const EmailCard = ({ body, heading, headers, footer, framed = true, brand
169
169
  : { maxWidth: "100%" }),
170
170
  }, children: [_jsx(Section, { style: {
171
171
  backgroundColor: theme.accent,
172
- padding: "22px 30px",
173
172
  // The corners are set on the band itself rather than clipped by the
174
173
  // container: React Email renders the container as a <table>, which
175
174
  // `overflow: hidden` does not reliably clip, so the band needs its own
176
175
  // rounded corners to stay inside the container edge.
177
176
  ...(framed ? { borderRadius: "15px 15px 0 0" } : {}),
178
- }, children: _jsx(BrandMark, { theme: theme }) }), _jsxs(Section, { style: { padding: "34px 34px 24px" }, children: [heading ? (_jsx(Heading, { style: {
179
- color: theme.foreground,
180
- fontSize: "28px",
181
- letterSpacing: "-0.5px",
182
- lineHeight: "1.2",
183
- margin: "0 0 24px",
184
- }, children: heading })) : null, _jsx(EnvelopeHeaders, { headers: headers, theme: theme }), _jsx(EmailBody, { body: body, brand: theme })] }), _jsx(Hr, { style: { borderColor: theme.border, margin: 0 } }), _jsx(Section, { style: { padding: "20px 34px 26px" }, children: _jsxs(Text, { style: {
185
- color: theme.muted,
186
- fontSize: "12px",
187
- lineHeight: "1.55",
188
- margin: 0,
189
- }, children: [footer ?? theme.tagline, " ", theme.website ? (_jsx(Link, { href: theme.website, style: {
190
- color: theme.accent,
191
- textDecoration: "none",
192
- }, children: theme.name })) : null] }) })] }));
177
+ }, children: _jsx(Row, { children: _jsx(Column, { style: { padding: "26px 36px" }, children: _jsx(BrandMark, { theme: theme }) }) }) }), _jsx(Section, { children: _jsx(Row, { children: _jsxs(Column, { style: { padding: "38px 38px 28px" }, children: [heading ? (_jsx(Heading, { style: {
178
+ color: theme.foreground,
179
+ fontSize: "28px",
180
+ letterSpacing: "-0.5px",
181
+ lineHeight: "1.2",
182
+ margin: "0 0 24px",
183
+ }, children: heading })) : null, _jsx(EnvelopeHeaders, { headers: headers, theme: theme }), _jsx(EmailBody, { body: body, brand: theme })] }) }) }), _jsx(Hr, { style: { borderColor: theme.border, margin: 0 } }), _jsx(Section, { children: _jsx(Row, { children: _jsx(Column, { style: { padding: "24px 38px 30px" }, children: _jsxs(Text, { style: {
184
+ color: theme.muted,
185
+ fontSize: "12px",
186
+ lineHeight: "1.55",
187
+ margin: 0,
188
+ }, children: [footer ?? theme.tagline, " ", theme.website ? (_jsx(Link, { href: theme.website, style: {
189
+ color: theme.accent,
190
+ textDecoration: "none",
191
+ }, children: theme.name })) : null] }) }) }) })] }));
193
192
  };
194
193
  /** Complete responsive, branded React Email document. */
195
194
  export const EmailDocument = (props) => {
@@ -202,4 +201,4 @@ export const EmailDocument = (props) => {
202
201
  };
203
202
  return (_jsxs(Html, { lang: "en", children: [_jsx(Head, {}), _jsx(Preview, { children: props.preview ?? props.subject ?? "Message" }), _jsx(Body, { style: pageStyle, children: _jsx(EmailCard, { ...props }) })] }));
204
203
  };
205
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVtcGxhdGUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7R0FRRztBQUNILE9BQU8sRUFBRSxVQUFVLEVBQXFCLE1BQU0sd0JBQXdCLENBQUM7QUFDdkUsT0FBTyxFQUNMLElBQUksRUFDSixNQUFNLEVBQ04sU0FBUyxFQUNULElBQUksRUFDSixPQUFPLEVBQ1AsRUFBRSxFQUNGLElBQUksRUFDSixHQUFHLEVBQ0gsSUFBSSxFQUNKLFFBQVEsRUFDUixPQUFPLEVBQ1AsR0FBRyxFQUNILE9BQU8sRUFDUCxJQUFJLEdBQ0wsTUFBTSx5QkFBeUIsQ0FBQztBQXFDakMsU0FBUyxvQkFBb0IsQ0FBQyxLQUF5QjtJQUNyRCxPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDN0UsQ0FBQztBQUVELCtEQUErRDtBQUMvRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLE9BQXFCLEVBQWMsRUFBRTtJQUN6RSxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ25FLE9BQU87UUFDTCxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPO1FBQzlCLFFBQVEsRUFBRSxTQUFTO1FBQ25CLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUk7UUFDbkMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1FBQ2xCLFVBQVUsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU87UUFDbEMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVTtRQUNsQyxVQUFVLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVO1FBQ3JDLEtB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QUFNOzZCQUN2QixZQUVBLEtBQUssQ0FBQyxJQUFJLEdBQ04sQ0FDUixDQUFDLENBQUMsQ0FBQyxJQUFJLElBQ0gsR0FDQyxJQUNBLENBQ2IsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLHlEQUF5RDtBQUN6RCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxLQUF5QixFQUFFLEVBQUU7SUFDekQsTUFBTSxLQUFLLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLE1BQU0sU0FBUyxHQUF3QjtRQUNyQyxlQUFlLEVBQUUsS0FBSyxDQUFDLFVBQVU7UUFDakMsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1FBQzVCLE1BQU0sRUFBRSxDQUFDO1FBQ1QsT0FBTyxFQUFFLFdBQVc7S0FDckIsQ0FBQztJQUNGLE9BQU8sQ0FDTCxNQUFDLElBQUksSUFBQyxJQUFJLEVBQUMsSUFBSSxhQUNiLEtBQUMsSUFBSSxLQUFHLEVBQ1IsS0FBQyxPQUFPLGNBQUUsS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLFNBQVMsR0FBVyxFQUNoRSxLQUFDLElBQUksSUFBQyxLQUFLLEVBQUUsU0FBUyxZQUNwQixLQUFDLFNBQVMsT0FBSyxLQUFLLEdBQUksR0FDbkIsSUFDRixDQUNSLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFVuaXZlcnNhbCBSZWFjdCBFbWFpbCBwcmVzZW50YXRpb24gZm9yIGRieC10b29scyBlbWFpbCBmbG93cy5cbiAqXG4gKiBUaGUgZG9jdW1lbnQgY29tcG9uZW50IHJlbmRlcnMgb24gdGhlIHNlcnZlciB0aHJvdWdoIGBAcmVhY3QtZW1haWwvcmVuZGVyYDtcbiAqIHRoZSBib2R5IGNvbXBvbmVudCBpcyByZXVzZWQgZGlyZWN0bHkgYnkgYnJvd3NlciBhcHByb3ZhbCBhbmQgY29tcG9zZSB2aWV3cy5cbiAqIEJvdGggZGVmYXVsdCB0byB0aGUgcmVwb3NpdG9yeSBicmFuZCB3aGlsZSBhY2NlcHRpbmcgYSBjb25zdW1lciBvdmVycmlkZS5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cbmltcG9ydCB7IGJyYW5kVXRpbHMsIHR5cGUgQnJhbmRDb250ZXh0IH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB7XG4gIEJvZHksXG4gIENvbHVtbixcbiAgQ29udGFpbmVyLFxuICBIZWFkLFxuICBIZWFkaW5nLFxuICBIcixcbiAgSHRtbCxcbiAgSW1nLFxuICBMaW5rLFxuICBNYXJrZG93bixcbiAgUHJldmlldyxcbiAgUm93LFxuICBTZWN0aW9uLFxuICBUZXh0LFxufSBmcm9tIFwiQHJlYWN0LWVtYWlsL2NvbXBvbmVudHNcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuXG4vKiogRW1haWwtc2FmZSBicmFuZCB2YWx1ZXMgdXNlZCBieSB0aGUgUmVhY3QgRW1haWwgdGVtcGxhdGUuICovXG5leHBvcnQgaW50ZXJmYWNlIEVtYWlsQnJhbmQge1xuICBhY2NlbnQ6IHN0cmluZztcbiAgb25BY2NlbnQ/OiBzdHJpbmc7XG4gIGZvbnRGYW1pbHk6IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgbG9nb1VybD86IHN0cmluZztcbiAgYmFja2dyb3VuZD86IHN0cmluZztcbiAgc3VyZmFjZT86IHN0cmluZztcbiAgZm9yZWdyb3VuZD86IHN0cmluZztcbiAgbXV0ZWQ/OiBzdHJpbmc7XG4gIGJvcmRlcj86IHN0cmluZztcbiAgdGFnbGluZT86IHN0cmluZztcbiAgd2Vic2l0ZT86IHN0cmluZztcbn1cblxuLyoqIENvbXBsZXRlIHZhbHVlcyBhZnRlciBhcHBseWluZyB0aGUgZGJ4LXRvb2xzIGRlZmF1bHQgYnJhbmQuICovXG5leHBvcnQgdHlwZSBSZXNvbHZlZEVtYWlsQnJhbmQgPSBSZXF1aXJlZDxcbiAgUGljazxcbiAgICBFbWFpbEJyYW5kLFxuICAgIHwgXCJhY2NlbnRcIlxuICAgIHwgXCJvbkFjY2VudFwiXG4gICAgfCBcImZvbnRGYW1pbHlcIlxuICAgIHwgXCJuYW1lXCJcbiAgICB8IFwiYmFja2dyb3VuZFwiXG4gICAgfCBcInN1cmZhY2VcIlxuICAgIHwgXCJmb3JlZ3JvdW5kXCJcbiAgICB8IFwibXV0ZWRcIlxuICAgIHwgXCJib3JkZXJcIlxuICAgIHwgXCJ0YWdsaW5lXCJcbiAgPlxuPiAmXG4gIFBpY2s8RW1haWxCcmFuZCwgXCJsb2dvVXJsXCIgfCBcIndlYnNpdGVcIj47XG5cbmZ1bmN0aW9uIGlzUmVuZGVyYWJsZUltYWdlVXJsKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiB2YWx1ZSBpcyBzdHJpbmcge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmIC9eKD86aHR0cHM/OnxkYXRhOnxjaWQ6KS9pLnRlc3QodmFsdWUpO1xufVxuXG4vKiogUHJvamVjdCBhIHBvcnRhYmxlIGJyYW5kIGNvbnRleHQgaW50byBlbWFpbC1zYWZlIHZhbHVlcy4gKi9cbmV4cG9ydCBjb25zdCBlbWFpbEJyYW5kRnJvbUNvbnRleHQgPSAoY29udGV4dDogQnJhbmRDb250ZXh0KTogRW1haWxCcmFuZCA9PiB7XG4gIGNvbnN0IGxvZ28gPSBjb250ZXh0LmFzc2V0cy5sb2dvLmRhcmsgPz8gY29udGV4dC5hc3NldHMubG9nby5saWdodDtcbiAgcmV0dXJuIHtcbiAgICBhY2NlbnQ6IGNvbnRleHQuY29sb3JzLnByaW1hcnksXG4gICAgb25BY2NlbnQ6IFwiI2ZmZmZmZlwiLFxuICAgIGZvbnRGYW1pbHk6IGNvbnRleHQudHlwb2dyYXBoeS5zYW5zLFxuICAgIG5hbWU6IGNvbnRleHQubmFtZSxcbiAgICBiYWNrZ3JvdW5kOiBjb250ZXh0LmNvbG9ycy5zdXJmYWNlLFxuICAgIHN1cmZhY2U6IGNvbnRleHQuY29sb3JzLmJhY2tncm91bmQsXG4gICAgZm9yZWdyb3VuZDogY29udGV4dC5jb2xvcnMuZm9yZWdyb3VuZCxcbiAgICBtdXRlZDogY29udGV4dC5jb2xvcnMubXV0ZWQsXG4gICAgYm9yZGVyOiBjb250ZXh0LmNvbG9ycy5ib3JkZXIsXG4gICAgdGFnbGluZTogY29udGV4dC50YWdsaW5lLFxuICAgIHdlYnNpdGU6IGNvbnRleHQubGlua3Mud2Vic2l0ZSxcbiAgICAuLi4oaXNSZW5kZXJhYmxlSW1hZ2VVcmwobG9nbykgPyB7IGxvZ29Vcmw6IGxvZ28gfSA6IHt9KSxcbiAgfTtcbn07XG5cbi8qKiBUaGUgcmVwb3NpdG9yeSBicmFuZCB1c2VkIGJ5IGV2ZXJ5IGVtYWlsIHVubGVzcyBleHBsaWNpdGx5IG92ZXJyaWRkZW4uICovXG5leHBvcnQgY29uc3QgZGVmYXVsdEVtYWlsQnJhbmQ6IEVtYWlsQnJhbmQgPSBlbWFpbEJyYW5kRnJvbUNvbnRleHQoYnJhbmRVdGlscy5kZWZhdWx0QnJhbmRDb250ZXh0KTtcblxuLyoqIE1lcmdlIGEgcGFydGlhbCBjb25zdW1lciBicmFuZCBvdmVyIHRoZSByZXBvc2l0b3J5IGRlZmF1bHQuICovXG5leHBvcnQgY29uc3QgcmVzb2x2ZUVtYWlsQnJhbmQgPSAoaW5wdXQ/OiBFbWFpbEJyYW5kKTogUmVzb2x2ZWRFbWFpbEJyYW5kID0+IHtcbiAgY29uc3QgbWVyZ2VkID0geyAuLi5kZWZhdWx0RW1haWxCcmFuZCwgLi4uaW5wdXQgfTtcbiAgcmV0dXJuIHtcbiAgICBhY2NlbnQ6IG1lcmdlZC5hY2NlbnQsXG4gICAgb25BY2NlbnQ6IG1lcmdlZC5vbkFjY2VudCA/PyBcIiNmZmZmZmZcIixcbiAgICBmb250RmFtaWx5OiBtZXJnZWQuZm9udEZhbWlseSxcbiAgICBuYW1lOiBtZXJnZWQubmFtZSA/PyBicmFuZFV0aWxzLmRlZmF1bHRCcmFuZENvbnRleHQubmFtZSxcbiAgICBiYWNrZ3JvdW5kOiBtZXJnZWQuYmFja2dyb3VuZCA/PyBicmFuZFV0aWxzLmRlZmF1bHRCcmFuZENvbnRleHQuY29sb3JzLnN1cmZhY2UsXG4gICAgc3VyZmFjZTogbWVyZ2VkLnN1cmZhY2UgPz8gYnJhbmRVdGlscy5kZWZhdWx0QnJhbmRDb250ZXh0LmNvbG9ycy5iYWNrZ3JvdW5kLFxuICAgIGZvcmVncm91bmQ6IG1lcmdlZC5mb3JlZ3JvdW5kID8/IGJyYW5kVXRpbHMuZGVmYXVsdEJyYW5kQ29udGV4dC5jb2xvcnMuZm9yZWdyb3VuZCxcbiAgICBtdXRlZDogbWVyZ2VkLm11dGVkID8/IGJyYW5kVXRpbHMuZGVmYXVsdEJyYW5kQ29udGV4dC5jb2xvcnMubXV0ZWQsXG4gICAgYm9yZGVyOiBtZXJnZWQuYm9yZGVyID8/IGJyYW5kVXRpbHMuZGVmYXVsdEJyYW5kQ29udGV4dC5jb2xvcnMuYm9yZGVyLFxuICAgIHRhZ2xpbmU6IG1lcmdlZC50YWdsaW5lID8/IGJyYW5kVXRpbHMuZGVmYXVsdEJyYW5kQ29udGV4dC50YWdsaW5lLFxuICAgIC4uLihtZXJnZWQubG9nb1VybCA/IHsgbG9nb1VybDogbWVyZ2VkLmxvZ29VcmwgfSA6IHt9KSxcbiAgICAuLi4obWVyZ2VkLndlYnNpdGUgPyB7IHdlYnNpdGU6IG1lcmdlZC53ZWJzaXRlIH0gOiB7fSksXG4gIH07XG59O1xuXG4vKiogTm9ybWFsaXplIGluZGVudGF0aW9uIGluIGF1dGhvcmVkIGNvbnRlbnQgd2l0aG91dCBjb25zdHJhaW5pbmcgaXRzIHN0cnVjdHVyZS4gKi9cbmV4cG9ydCBjb25zdCBub3JtYWxpemVFbWFpbE1hcmtkb3duID0gKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBsaW5lcyA9IHZhbHVlLnJlcGxhY2UoL1xcclxcbj8vZywgXCJcXG5cIikuc3BsaXQoXCJcXG5cIik7XG4gIHdoaWxlIChsaW5lc1swXT8udHJpbSgpID09PSBcIlwiKSBsaW5lcy5zaGlmdCgpO1xuICB3aGlsZSAobGluZXMuYXQoLTEpPy50cmltKCkgPT09IFwiXCIpIGxpbmVzLnBvcCgpO1xuICBjb25zdCBub25CbGFuayA9IGxpbmVzLmZpbHRlcigobGluZSkgPT4gbGluZS50cmltKCkubGVuZ3RoID4gMCk7XG4gIGNvbnN0IGluZGVudCA9IG5vbkJsYW5rLnJlZHVjZSgobWluaW11bSwgbGluZSkgPT4ge1xuICAgIGNvbnN0IHdpZHRoID0gbGluZS5tYXRjaCgvXlxccyovKT8uWzBdLmxlbmd0aCA/PyAwO1xuICAgIHJldHVybiBNYXRoLm1pbihtaW5pbXVtLCB3aWR0aCk7XG4gIH0sIE51bWJlci5QT1NJVElWRV9JTkZJTklUWSk7XG4gIGlmICghTnVtYmVyLmlzRmluaXRlKGluZGVudCkgfHwgaW5kZW50ID09PSAwKSByZXR1cm4gbGluZXMuam9pbihcIlxcblwiKTtcbiAgcmV0dXJuIGxpbmVzLm1hcCgobGluZSkgPT4gbGluZS5zbGljZShNYXRoLm1pbihpbmRlbnQsIGxpbmUubGVuZ3RoKSkpLmpvaW4oXCJcXG5cIik7XG59O1xuXG4vKiogUHJvcHMgZm9yIHRoZSByZXVzYWJsZSBtZXNzYWdlLWJvZHkgY29tcG9uZW50LiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbWFpbEJvZHlQcm9wcyB7XG4gIGJvZHk6IHN0cmluZztcbiAgYnJhbmQ/OiBFbWFpbEJyYW5kO1xufVxuXG4vKiogUmVuZGVyIHJpY2ggbWVzc2FnZSBjb250ZW50IHdpdGggZW1haWwtY2xpZW50LXNhZmUgaW5saW5lIHN0eWxlcy4gKi9cbmV4cG9ydCBjb25zdCBFbWFpbEJvZHkgPSAoeyBib2R5LCBicmFuZDogYnJhbmRJbnB1dCB9OiBFbWFpbEJvZHlQcm9wcykgPT4ge1xuICBjb25zdCB0aGVtZSA9IHJlc29sdmVFbWFpbEJyYW5kKGJyYW5kSW5wdXQpO1xuICByZXR1cm4gKFxuICAgIDxNYXJrZG93blxuICAgICAgbWFya2Rvd25Db250YWluZXJTdHlsZXM9e3tcbiAgICAgICAgY29sb3I6IHRoZW1lLmZvcmVncm91bmQsXG4gICAgICAgIGZvbnRGYW1pbHk6IHRoZW1lLmZvbnRGYW1pbHksXG4gICAgICAgIGZvbnRTaXplOiBcIjE1cHhcIixcbiAgICAgICAgbGluZUhlaWdodDogXCIxLjY1XCIsXG4gICAgICB9fVxuICAgICAgbWFya2Rvd25DdXN0b21TdHlsZXM9e3tcbiAgICAgICAgaDE6IHsgY29sb3I6IHRoZW1lLmZvcmVncm91bmQsIGZvbnRTaXplOiBcIjMwcHhcIiwgbGluZUhlaWdodDogXCIxLjJcIiwgbWFyZ2luOiBcIjAgMCAyMHB4XCIgfSxcbiAgICAgICAgaDI6IHsgY29sb3I6IHRoZW1lLmZvcmVncm91bmQsIGZvbnRTaXplOiBcIjIzcHhcIiwgbGluZUhlaWdodDogXCIxLjNcIiwgbWFyZ2luOiBcIjI4cHggMCAxMnB4XCIgfSxcbiAgICAgICAgaDM6IHsgY29sb3I6IHRoZW1lLmZvcmVncm91bmQsIGZvbnRTaXplOiBcIjE4cHhcIiwgbGluZUhlaWdodDogXCIxLjRcIiwgbWFyZ2luOiBcIjI0cHggMCAxMHB4XCIgfSxcbiAgICAgICAgcDogeyBtYXJnaW46IFwiMCAwIDE2cHhcIiB9LFxuICAgICAgICBsaW5rOiB7IGNvbG9yOiB0aGVtZS5hY2NlbnQsIGZvbnRXZWlnaHQ6IDYwMCwgdGV4dERlY29yYXRpb246IFwidW5kZXJsaW5lXCIgfSxcbiAgICAgICAgYmxvY2tRdW90ZToge1xuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUuYmFja2dyb3VuZCxcbiAgICAgICAgICBib3JkZXJMZWZ0OiBgNHB4IHNvbGlkICR7dGhlbWUuYWNjZW50fWAsXG4gICAgICAgICAgYm9yZGVyUmFkaXVzOiBcIjAgMTBweCAxMHB4IDBcIixcbiAgICAgICAgICBjb2xvcjogdGhlbWUuZm9yZWdyb3VuZCxcbiAgICAgICAgICBtYXJnaW46IFwiMjBweCAwXCIsXG4gICAgICAgICAgcGFkZGluZzogXCIxNHB4IDE4cHhcIixcbiAgICAgICAgfSxcbiAgICAgICAgY29kZUlubGluZToge1xuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUuYmFja2dyb3VuZCxcbiAgICAgICAgICBib3JkZXJSYWRpdXM6IFwiNXB4XCIsXG4gICAgICAgICAgY29sb3I6IHRoZW1lLmZvcmVncm91bmQsXG4gICAgICAgICAgZm9udEZhbWlseTogYnJhbmRVdGlscy5kZWZhdWx0QnJhbmRDb250ZXh0LnR5cG9ncmFwaHkubW9ubyxcbiAgICAgICAgICBmb250U2l6ZTogXCIxM3B4XCIsXG4gICAgICAgICAgcGFkZGluZzogXCIycHggNXB4XCIsXG4gICAgICAgIH0sXG4gICAgICAgIGNvZGVCbG9jazoge1xuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUuZm9yZWdyb3VuZCxcbiAgICAgICAgICBib3JkZXJSYWRpdXM6IFwiMTBweFwiLFxuICAgICAgICAgIGNvbG9yOiB0aGVtZS5zdXJmYWNlLFxuICAgICAgICAgIGZvbnRGYW1pbHk6IGJyYW5kVXRpbHMuZGVmYXVsdEJyYW5kQ29udGV4dC50eXBvZ3JhcGh5Lm1vbm8sXG4gICAgICAgICAgZm9udFNpemU6IFwiMTNweFwiLFxuICAgICAgICAgIGxpbmVIZWlnaHQ6IFwiMS41NVwiLFxuICAgICAgICAgIG1hcmdpbjogXCIyMHB4IDBcIixcbiAgICAgICAgICBwYWRkaW5nOiBcIjE2cHhcIixcbiAgICAgICAgfSxcbiAgICAgICAgaHI6IHsgYm9yZGVyQ29sb3I6IHRoZW1lLmJvcmRlciwgbWFyZ2luOiBcIjI4cHggMFwiIH0sXG4gICAgICAgIGltYWdlOiB7IGJvcmRlclJhZGl1czogXCIxMHB4XCIsIGhlaWdodDogXCJhdXRvXCIsIG1heFdpZHRoOiBcIjEwMCVcIiB9LFxuICAgICAgICBsaTogeyBtYXJnaW46IFwiNnB4IDBcIiB9LFxuICAgICAgICB0YWJsZTogeyBib3JkZXJDb2xsYXBzZTogXCJjb2xsYXBzZVwiLCBtYXJnaW46IFwiMjBweCAwXCIsIHdpZHRoOiBcIjEwMCVcIiB9LFxuICAgICAgICB0aDoge1xuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUuYmFja2dyb3VuZCxcbiAgICAgICAgICBib3JkZXI6IGAxcHggc29saWQgJHt0aGVtZS5ib3JkZXJ9YCxcbiAgICAgICAgICBwYWRkaW5nOiBcIjlweCAxMnB4XCIsXG4gICAgICAgICAgdGV4dEFsaWduOiBcImxlZnRcIixcbiAgICAgICAgfSxcbiAgICAgICAgdGQ6IHtcbiAgICAgICAgICBib3JkZXI6IGAxcHggc29saWQgJHt0aGVtZS5ib3JkZXJ9YCxcbiAgICAgICAgICBwYWRkaW5nOiBcIjlweCAxMnB4XCIsXG4gICAgICAgICAgdGV4dEFsaWduOiBcImxlZnRcIixcbiAgICAgICAgfSxcbiAgICAgIH19XG4gICAgPlxuICAgICAge25vcm1hbGl6ZUVtYWlsTWFya2Rvd24oYm9keSl9XG4gICAgPC9NYXJrZG93bj5cbiAgKTtcbn07XG5cbi8qKiBQcm9wcyBmb3IgdGhlIGNvbXBsZXRlIFJlYWN0IEVtYWlsIGRvY3VtZW50LiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbWFpbERvY3VtZW50UHJvcHMgZXh0ZW5kcyBFbWFpbEJvZHlQcm9wcyB7XG4gIHN1YmplY3Q/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBWaXNpYmxlIGhlYWRpbmcgaW5zaWRlIHRoZSBlbWFpbCBjYXJkLiBPbWl0IGl0IGZvciBvcmRpbmFyeSBtZXNzYWdlcyBzbyB0aGVcbiAgICogdHJhbnNwb3J0IHN1YmplY3Qgc3RheXMgYSB0cmFuc3BvcnQgc3ViamVjdCBhbmQgaXMgbm90IHJlcGVhdGVkIGFzIGEgYm9keVxuICAgKiB0aXRsZS4gUGFzcyBhIHNob3J0ZXIgaGVhZGluZyB3aGVuIHRoZSBzdWJqZWN0IGNhcnJpZXMgbm90aWZpY2F0aW9uLXNwZWNpZmljXG4gICAqIGRldGFpbHMgKG9uZS10aW1lLWNvZGUgbWFpbCBpcyB0aGUgbW90aXZhdGluZyBjYXNlKS5cbiAgICovXG4gIGhlYWRpbmc/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBlbnZlbG9wZSByb3dzIHJlbmRlcmVkIGFib3ZlIHRoZSBib2R5IChGcm9tIC8gVG8gLyBDYyAvIOKApikuIEtlcHQgZm9yXG4gICAqIGxvY2FsIG91dGJveCBwcmV2aWV3cyB0aGF0IGRlbGliZXJhdGVseSBzaG93IHRoZSB3aXJlIGVudmVsb3BlOyBkZWxpdmVyZWRcbiAgICogU01UUCBtYWlsIGFuZCBicm93c2VyIGFwcHJvdmFsL2NvbXBvc2UgcHJldmlld3MgbGVhdmUgdGhpcyB1bnNldCDigJQgdGhvc2VcbiAgICogc3VyZmFjZXMgcHV0IHJlY2lwaWVudHMgYW5kIGF0dGFjaG1lbnRzIGluIGNsaWVudCBjaHJvbWUgaW5zdGVhZC5cbiAgICovXG4gIGhlYWRlcnM/OiBSZWFkb25seUFycmF5PHJlYWRvbmx5IFtzdHJpbmcsIHN0cmluZ10+O1xuICBmb290ZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEcmF3IHRoZSBjYXJkJ3Mgb3duIGZyYW1lOiByb3VuZGVkIGNvcm5lcnMsIGJvcmRlciwgZHJvcCBzaGFkb3csIGFuZCB0aGVcbiAgICogNjIwcHggcmVhZGluZyB3aWR0aC4gRGVsaXZlcmVkIG1haWwga2VlcHMgaXQsIGJlY2F1c2UgdGhlIGNhcmQgZmxvYXRzIG9uIHRoZVxuICAgKiBjbGllbnQncyBwYWdlIGJhY2tncm91bmQgYW5kIHRoZSBmcmFtZSBpcyB3aGF0IHNlcGFyYXRlcyB0aGUgdHdvLlxuICAgKlxuICAgKiBUdXJuIGl0IG9mZiB3aGVuIHRoZSBjYXJkIGFscmVhZHkgc2l0cyBpbnNpZGUgYSBzdXJmYWNlIHRoYXQgZnJhbWVzIGl0IC0gYVxuICAgKiBicm93c2VyIHByZXZpZXcncyByZWFkaW5nIHBhbmUgLSBzbyB0aGUgdHdvIGZyYW1lcyBkbyBub3QgbmVzdCBpbnRvIGEgcm91bmRlZFxuICAgKiBjYXJkIGluc2lkZSBhIHJvdW5kZWQgY2FyZC5cbiAgICovXG4gIGZyYW1lZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBQcmVoZWFkZXIgdGV4dDogdGhlIHNuaXBwZXQgYSBjbGllbnQgc2hvd3MgbmV4dCB0byB0aGUgc3ViamVjdCBpbiBhIGxpc3QsIGFuZFxuICAgKiAtIHRoZSByZWFzb24gdGhpcyBpcyBhIHByb3AgLSB0aGUgdGV4dCBhIG1vYmlsZSBPUyBwdXRzIGluIHRoZSBQVVNIXG4gICAqIE5PVElGSUNBVElPTiBib2R5LlxuICAgKlxuICAgKiBEZWZhdWx0cyB0byB0aGUgc3ViamVjdC4gU2V0IGl0IHdoZW4gdGhlIG5vdGlmaWNhdGlvbiBzaG91bGQgc2F5IHNvbWV0aGluZyB0aGVcbiAgICogc3ViamVjdCBkb2VzIG5vdC4gT25lLXRpbWUtY29kZSBtYWlsIGlzIHRoZSBjYXNlIHRoYXQgbW90aXZhdGVkIGl0OiBpT1MgcmVhZHNcbiAgICogYW4gaW5jb21pbmcgbm90aWZpY2F0aW9uJ3MgdGV4dCB0byBvZmZlciBhbiBhdXRvZmlsbCBjb2RlIChuYXRpdmVseSBmb3IgTWFpbFxuICAgKiBhbmQgTWVzc2FnZXMsIGFuZCBzaW5jZSBpT1MgMjYgZm9yIGFueSBhcHAncyBub3RpZmljYXRpb24sIEdtYWlsIGluY2x1ZGVkKSwgc29cbiAgICogYSBjb2RlIHRoYXQgYXBwZWFycyBvbmx5IGluIHRoZSBCT0RZIGlzIG5ldmVyIHNlZW4gLSB0aGUgbm90aWZpY2F0aW9uIGNhcnJpZXNcbiAgICogdGhlIHN1YmplY3QgYW5kIHRoaXMgc25pcHBldCwgbm90aGluZyBtb3JlLlxuICAgKi9cbiAgcHJldmlldz86IHN0cmluZztcbn1cblxuZnVuY3Rpb24gQnJhbmRNYXJrKHsgdGhlbWUgfTogeyB0aGVtZTogUmVzb2x2ZWRFbWFpbEJyYW5kIH0pOiBSZWFjdC5SZWFjdE5vZGUge1xuICBpZiAodGhlbWUubG9nb1VybCkge1xuICAgIHJldHVybiAoXG4gICAgICA8SW1nXG4gICAgICAgIHNyYz17dGhlbWUubG9nb1VybH1cbiAgICAgICAgYWx0PXt0aGVtZS5uYW1lfVxuICAgICAgICBoZWlnaHQ9XCIzNFwiXG4gICAgICAgIHN0eWxlPXt7IGRpc3BsYXk6IFwiYmxvY2tcIiwgaGVpZ2h0OiBcIjM0cHhcIiwgd2lkdGg6IFwiYXV0b1wiIH19XG4gICAgICAvPlxuICAgICk7XG4gIH1cbiAgcmV0dXJuIChcbiAgICA8VGV4dFxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgY29sb3I6IHRoZW1lLm9uQWNjZW50LFxuICAgICAgICBmb250U2l6ZTogXCIyMHB4XCIsXG4gICAgICAgIGZvbnRXZWlnaHQ6IDgwMCxcbiAgICAgICAgbGV0dGVyU3BhY2luZzogXCItMC4zcHhcIixcbiAgICAgICAgbWFyZ2luOiAwLFxuICAgICAgfX1cbiAgICA+XG4gICAgICB7dGhlbWUubmFtZX1cbiAgICA8L1RleHQ+XG4gICk7XG59XG5cbmZ1bmN0aW9uIEVudmVsb3BlSGVhZGVycyh7XG4gIGhlYWRlcnMsXG4gIHRoZW1lLFxufToge1xuICBoZWFkZXJzOiBFbWFpbERvY3VtZW50UHJvcHNbXCJoZWFkZXJzXCJdO1xuICB0aGVtZTogUmVzb2x2ZWRFbWFpbEJyYW5kO1xufSkge1xuICBpZiAoIWhlYWRlcnM/Lmxlbmd0aCkgcmV0dXJuIG51bGw7XG4gIHJldHVybiAoXG4gICAgPFNlY3Rpb25cbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUuYmFja2dyb3VuZCxcbiAgICAgICAgYm9yZGVyUmFkaXVzOiBcIjEwcHhcIixcbiAgICAgICAgbWFyZ2luOiBcIjAgMCAyNHB4XCIsXG4gICAgICAgIHBhZGRpbmc6IFwiMTRweCAxNnB4XCIsXG4gICAgICB9fVxuICAgID5cbiAgICAgIHtoZWFkZXJzLm1hcCgoW2xhYmVsLCB2YWx1ZV0pID0+IChcbiAgICAgICAgPFJvdyBrZXk9e2Ake2xhYmVsfToke3ZhbHVlfWB9PlxuICAgICAgICAgIDxDb2x1bW5cbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgIGNvbG9yOiB0aGVtZS5tdXRlZCxcbiAgICAgICAgICAgICAgZm9udFNpemU6IFwiMTJweFwiLFxuICAgICAgICAgICAgICBmb250V2VpZ2h0OiA3MDAsXG4gICAgICAgICAgICAgIHBhZGRpbmc6IFwiM3B4IDEycHggM3B4IDBcIixcbiAgICAgICAgICAgICAgd2lkdGg6IFwiNzBweFwiLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9Db2x1bW4+XG4gICAgICAgICAgPENvbHVtbiBzdHlsZT17eyBjb2xvcjogdGhlbWUuZm9yZWdyb3VuZCwgZm9udFNpemU6IFwiMTNweFwiLCBwYWRkaW5nOiBcIjNweCAwXCIgfX0+XG4gICAgICAgICAgICB7dmFsdWV9XG4gICAgICAgICAgPC9Db2x1bW4+XG4gICAgICAgIDwvUm93PlxuICAgICAgKSl9XG4gICAgPC9TZWN0aW9uPlxuICApO1xufVxuXG4vKiogQnJhbmRlZCBtZXNzYWdlIGNhcmQgc2hhcmVkIGJ5IHRoZSBmdWxsIGRvY3VtZW50IGFuZCBicm93c2VyIHByZXZpZXdzLiAqL1xuZXhwb3J0IGNvbnN0IEVtYWlsQ2FyZCA9ICh7XG4gIGJvZHksXG4gIGhlYWRpbmcsXG4gIGhlYWRlcnMsXG4gIGZvb3RlcixcbiAgZnJhbWVkID0gdHJ1ZSxcbiAgYnJhbmQ6IGJyYW5kSW5wdXQsXG59OiBFbWFpbERvY3VtZW50UHJvcHMpID0+IHtcbiAgY29uc3QgdGhlbWUgPSByZXNvbHZlRW1haWxCcmFuZChicmFuZElucHV0KTtcbiAgcmV0dXJuIChcbiAgICA8Q29udGFpbmVyXG4gICAgICBzdHlsZT17e1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnN1cmZhY2UsXG4gICAgICAgIGZvbnRGYW1pbHk6IHRoZW1lLmZvbnRGYW1pbHksXG4gICAgICAgIG1hcmdpbjogXCIwIGF1dG9cIixcbiAgICAgICAgLi4uKGZyYW1lZFxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBib3JkZXI6IGAxcHggc29saWQgJHt0aGVtZS5ib3JkZXJ9YCxcbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiBcIjE2cHhcIixcbiAgICAgICAgICAgICAgYm94U2hhZG93OiBcIjAgOHB4IDMwcHggcmdiYSgyNyw0OSw1NywwLjA4KVwiLFxuICAgICAgICAgICAgICBtYXhXaWR0aDogXCI2MjBweFwiLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDogeyBtYXhXaWR0aDogXCIxMDAlXCIgfSksXG4gICAgICB9fVxuICAgID5cbiAgICAgIDxTZWN0aW9uXG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5hY2NlbnQsXG4gICAgICAgICAgcGFkZGluZzogXCIyMnB4IDMwcHhcIixcbiAgICAgICAgICAvLyBUaGUgY29ybmVycyBhcmUgc2V0IG9uIHRoZSBiYW5kIGl0c2VsZiByYXRoZXIgdGhhbiBjbGlwcGVkIGJ5IHRoZVxuICAgICAgICAgIC8vIGNvbnRhaW5lcjogUmVhY3QgRW1haWwgcmVuZGVycyB0aGUgY29udGFpbmVyIGFzIGEgPHRhYmxlPiwgd2hpY2hcbiAgICAgICAgICAvLyBgb3ZlcmZsb3c6IGhpZGRlbmAgZG9lcyBub3QgcmVsaWFibHkgY2xpcCwgc28gdGhlIGJhbmQgbmVlZHMgaXRzIG93blxuICAgICAgICAgIC8vIHJvdW5kZWQgY29ybmVycyB0byBzdGF5IGluc2lkZSB0aGUgY29udGFpbmVyIGVkZ2UuXG4gICAgICAgICAgLi4uKGZyYW1lZCA/IHsgYm9yZGVyUmFkaXVzOiBcIjE1cHggMTVweCAwIDBcIiB9IDoge30pLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8QnJhbmRNYXJrIHRoZW1lPXt0aGVtZX0gLz5cbiAgICAgIDwvU2VjdGlvbj5cbiAgICAgIDxTZWN0aW9uIHN0eWxlPXt7IHBhZGRpbmc6IFwiMzRweCAzNHB4IDI0cHhcIiB9fT5cbiAgICAgICAge2hlYWRpbmcgPyAoXG4gICAgICAgICAgPEhlYWRpbmdcbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgIGNvbG9yOiB0aGVtZS5mb3JlZ3JvdW5kLFxuICAgICAgICAgICAgICBmb250U2l6ZTogXCIyOHB4XCIsXG4gICAgICAgICAgICAgIGxldHRlclNwYWNpbmc6IFwiLTAuNXB4XCIsXG4gICAgICAgICAgICAgIGxpbmVIZWlnaHQ6IFwiMS4yXCIsXG4gICAgICAgICAgICAgIG1hcmdpbjogXCIwIDAgMjRweFwiLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aGVhZGluZ31cbiAgICAgICAgICA8L0hlYWRpbmc+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgICA8RW52ZWxvcGVIZWFkZXJzIGhlYWRlcnM9e2hlYWRlcnN9IHRoZW1lPXt0aGVtZX0gLz5cbiAgICAgICAgPEVtYWlsQm9keSBib2R5PXtib2R5fSBicmFuZD17dGhlbWV9IC8+XG4gICAgICA8L1NlY3Rpb24+XG4gICAgICA8SHIgc3R5bGU9e3sgYm9yZGVyQ29sb3I6IHRoZW1lLmJvcmRlciwgbWFyZ2luOiAwIH19IC8+XG4gICAgICA8U2VjdGlvbiBzdHlsZT17eyBwYWRkaW5nOiBcIjIwcHggMzRweCAyNnB4XCIgfX0+XG4gICAgICAgIDxUZXh0XG4gICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZS5tdXRlZCxcbiAgICAgICAgICAgIGZvbnRTaXplOiBcIjEycHhcIixcbiAgICAgICAgICAgIGxpbmVIZWlnaHQ6IFwiMS41NVwiLFxuICAgICAgICAgICAgbWFyZ2luOiAwLFxuICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICB7Zm9vdGVyID8/IHRoZW1lLnRhZ2xpbmV9e1wiIFwifVxuICAgICAgICAgIHt0aGVtZS53ZWJzaXRlID8gKFxuICAgICAgICAgICAgPExpbmtcbiAgICAgICAgICAgICAgaHJlZj17dGhlbWUud2Vic2l0ZX1cbiAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICBjb2xvcjogdGhlbWUuYWNjZW50LFxuICAgICAgICAgICAgICAgIHRleHREZWNvcmF0aW9uOiBcIm5vbmVcIixcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3RoZW1lLm5hbWV9XG4gICAgICAgICAgICA8L0xpbms+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvU2VjdGlvbj5cbiAgICA8L0NvbnRhaW5lcj5cbiAgKTtcbn07XG5cbi8qKiBDb21wbGV0ZSByZXNwb25zaXZlLCBicmFuZGVkIFJlYWN0IEVtYWlsIGRvY3VtZW50LiAqL1xuZXhwb3J0IGNvbnN0IEVtYWlsRG9jdW1lbnQgPSAocHJvcHM6IEVtYWlsRG9jdW1lbnRQcm9wcykgPT4ge1xuICBjb25zdCB0aGVtZSA9IHJlc29sdmVFbWFpbEJyYW5kKHByb3BzLmJyYW5kKTtcbiAgY29uc3QgcGFnZVN0eWxlOiBSZWFjdC5DU1NQcm9wZXJ0aWVzID0ge1xuICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUuYmFja2dyb3VuZCxcbiAgICBmb250RmFtaWx5OiB0aGVtZS5mb250RmFtaWx5LFxuICAgIG1hcmdpbjogMCxcbiAgICBwYWRkaW5nOiBcIjI4cHggMTJweFwiLFxuICB9O1xuICByZXR1cm4gKFxuICAgIDxIdG1sIGxhbmc9XCJlblwiPlxuICAgICAgPEhlYWQgLz5cbiAgICAgIDxQcmV2aWV3Pntwcm9wcy5wcmV2aWV3ID8/IHByb3BzLnN1YmplY3QgPz8gXCJNZXNzYWdlXCJ9PC9QcmV2aWV3PlxuICAgICAgPEJvZHkgc3R5bGU9e3BhZ2VTdHlsZX0+XG4gICAgICAgIDxFbWFpbENhcmQgey4uLnByb3BzfSAvPlxuICAgICAgPC9Cb2R5PlxuICAgIDwvSHRtbD5cbiAgKTtcbn07XG4iXX0=
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVtcGxhdGUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7R0FRRztBQUNILE9BQU8sRUFBRSxVQUFVLEVBQXFCLE1BQU0sd0JBQXdCLENBQUM7QUFDdkUsT0FBTyxFQUNMLElBQUksRUFDSixNQUFNLEVBQ04sU0FBUyxFQUNULElBQUksRUFDSixPQUFPLEVBQ1AsRUFBRSxFQUNGLElBQUksRUFDSixHQUFHLEVBQ0gsSUFBSSxFQUNKLFFBQVEsRUFDUixPQUFPLEVBQ1AsR0FBRyxFQUNILE9BQU8sRUFDUCxJQUFJLEdBQ0wsTUFBTSx5QkFBeUIsQ0FBQztBQXFDakMsU0FBUyxvQkFBb0IsQ0FBQyxLQUF5QjtJQUNyRCxPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDN0UsQ0FBQztBQUVELCtEQUErRDtBQUMvRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLE9BQXFCLEVBQWMsRUFBRTtJQUN6RSxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ25FLE9BQU87UUFDTCxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPO1FBQzlCLFFBQVEsRUFBRSxTQUFTO1FBQ25CLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUk7UUFDbkMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1FBQ2xCLFVBQVUsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU87UUFDbEMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVTtRQUNsQyxVQUFVLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVO1FBQ3JDLEtB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QUFPLENBQUMsQ0FBQyxDQUFDLENBQ2YsS0FBQyxJQUFJLElBQ0gsSUFBSSxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQ25CLEtBQUssRUFBRTt3Q0FDTCxLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU07d0NBQ25CLGNBQWMsRUFBRSxNQUFNO3FDQUN2QixZQUVBLEtBQUssQ0FBQyxJQUFJLEdBQ04sQ0FDUixDQUFDLENBQUMsQ0FBQyxJQUFJLElBQ0gsR0FDQSxHQUNMLEdBQ0UsSUFDQSxDQUNiLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRix5REFBeUQ7QUFDekQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBeUIsRUFBRSxFQUFFO0lBQ3pELE1BQU0sS0FBSyxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QyxNQUFNLFNBQVMsR0FBd0I7UUFDckMsZUFBZSxFQUFFLEtBQUssQ0FBQyxVQUFVO1FBQ2pDLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTtRQUM1QixNQUFNLEVBQUUsQ0FBQztRQUNULE9BQU8sRUFBRSxXQUFXO0tBQ3JCLENBQUM7SUFDRixPQUFPLENBQ0wsTUFBQyxJQUFJLElBQUMsSUFBSSxFQUFDLElBQUksYUFDYixLQUFDLElBQUksS0FBRyxFQUNSLEtBQUMsT0FBTyxjQUFFLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxTQUFTLEdBQVcsRUFDaEUsS0FBQyxJQUFJLElBQUMsS0FBSyxFQUFFLFNBQVMsWUFDcEIsS0FBQyxTQUFTLE9BQUssS0FBSyxHQUFJLEdBQ25CLElBQ0YsQ0FDUixDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVbml2ZXJzYWwgUmVhY3QgRW1haWwgcHJlc2VudGF0aW9uIGZvciBkYngtdG9vbHMgZW1haWwgZmxvd3MuXG4gKlxuICogVGhlIGRvY3VtZW50IGNvbXBvbmVudCByZW5kZXJzIG9uIHRoZSBzZXJ2ZXIgdGhyb3VnaCBgQHJlYWN0LWVtYWlsL3JlbmRlcmA7XG4gKiB0aGUgYm9keSBjb21wb25lbnQgaXMgcmV1c2VkIGRpcmVjdGx5IGJ5IGJyb3dzZXIgYXBwcm92YWwgYW5kIGNvbXBvc2Ugdmlld3MuXG4gKiBCb3RoIGRlZmF1bHQgdG8gdGhlIHJlcG9zaXRvcnkgYnJhbmQgd2hpbGUgYWNjZXB0aW5nIGEgY29uc3VtZXIgb3ZlcnJpZGUuXG4gKlxuICogQG1vZHVsZVxuICovXG5pbXBvcnQgeyBicmFuZFV0aWxzLCB0eXBlIEJyYW5kQ29udGV4dCB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQge1xuICBCb2R5LFxuICBDb2x1bW4sXG4gIENvbnRhaW5lcixcbiAgSGVhZCxcbiAgSGVhZGluZyxcbiAgSHIsXG4gIEh0bWwsXG4gIEltZyxcbiAgTGluayxcbiAgTWFya2Rvd24sXG4gIFByZXZpZXcsXG4gIFJvdyxcbiAgU2VjdGlvbixcbiAgVGV4dCxcbn0gZnJvbSBcIkByZWFjdC1lbWFpbC9jb21wb25lbnRzXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcblxuLyoqIEVtYWlsLXNhZmUgYnJhbmQgdmFsdWVzIHVzZWQgYnkgdGhlIFJlYWN0IEVtYWlsIHRlbXBsYXRlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbWFpbEJyYW5kIHtcbiAgYWNjZW50OiBzdHJpbmc7XG4gIG9uQWNjZW50Pzogc3RyaW5nO1xuICBmb250RmFtaWx5OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGxvZ29Vcmw/OiBzdHJpbmc7XG4gIGJhY2tncm91bmQ/OiBzdHJpbmc7XG4gIHN1cmZhY2U/OiBzdHJpbmc7XG4gIGZvcmVncm91bmQ/OiBzdHJpbmc7XG4gIG11dGVkPzogc3RyaW5nO1xuICBib3JkZXI/OiBzdHJpbmc7XG4gIHRhZ2xpbmU/OiBzdHJpbmc7XG4gIHdlYnNpdGU/OiBzdHJpbmc7XG59XG5cbi8qKiBDb21wbGV0ZSB2YWx1ZXMgYWZ0ZXIgYXBwbHlpbmcgdGhlIGRieC10b29scyBkZWZhdWx0IGJyYW5kLiAqL1xuZXhwb3J0IHR5cGUgUmVzb2x2ZWRFbWFpbEJyYW5kID0gUmVxdWlyZWQ8XG4gIFBpY2s8XG4gICAgRW1haWxCcmFuZCxcbiAgICB8IFwiYWNjZW50XCJcbiAgICB8IFwib25BY2NlbnRcIlxuICAgIHwgXCJmb250RmFtaWx5XCJcbiAgICB8IFwibmFtZVwiXG4gICAgfCBcImJhY2tncm91bmRcIlxuICAgIHwgXCJzdXJmYWNlXCJcbiAgICB8IFwiZm9yZWdyb3VuZFwiXG4gICAgfCBcIm11dGVkXCJcbiAgICB8IFwiYm9yZGVyXCJcbiAgICB8IFwidGFnbGluZVwiXG4gID5cbj4gJlxuICBQaWNrPEVtYWlsQnJhbmQsIFwibG9nb1VybFwiIHwgXCJ3ZWJzaXRlXCI+O1xuXG5mdW5jdGlvbiBpc1JlbmRlcmFibGVJbWFnZVVybCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogdmFsdWUgaXMgc3RyaW5nIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiAvXig/Omh0dHBzPzp8ZGF0YTp8Y2lkOikvaS50ZXN0KHZhbHVlKTtcbn1cblxuLyoqIFByb2plY3QgYSBwb3J0YWJsZSBicmFuZCBjb250ZXh0IGludG8gZW1haWwtc2FmZSB2YWx1ZXMuICovXG5leHBvcnQgY29uc3QgZW1haWxCcmFuZEZyb21Db250ZXh0ID0gKGNvbnRleHQ6IEJyYW5kQ29udGV4dCk6IEVtYWlsQnJhbmQgPT4ge1xuICBjb25zdCBsb2dvID0gY29udGV4dC5hc3NldHMubG9nby5kYXJrID8/IGNvbnRleHQuYXNzZXRzLmxvZ28ubGlnaHQ7XG4gIHJldHVybiB7XG4gICAgYWNjZW50OiBjb250ZXh0LmNvbG9ycy5wcmltYXJ5LFxuICAgIG9uQWNjZW50OiBcIiNmZmZmZmZcIixcbiAgICBmb250RmFtaWx5OiBjb250ZXh0LnR5cG9ncmFwaHkuc2FucyxcbiAgICBuYW1lOiBjb250ZXh0Lm5hbWUsXG4gICAgYmFja2dyb3VuZDogY29udGV4dC5jb2xvcnMuc3VyZmFjZSxcbiAgICBzdXJmYWNlOiBjb250ZXh0LmNvbG9ycy5iYWNrZ3JvdW5kLFxuICAgIGZvcmVncm91bmQ6IGNvbnRleHQuY29sb3JzLmZvcmVncm91bmQsXG4gICAgbXV0ZWQ6IGNvbnRleHQuY29sb3JzLm11dGVkLFxuICAgIGJvcmRlcjogY29udGV4dC5jb2xvcnMuYm9yZGVyLFxuICAgIHRhZ2xpbmU6IGNvbnRleHQudGFnbGluZSxcbiAgICB3ZWJzaXRlOiBjb250ZXh0LmxpbmtzLndlYnNpdGUsXG4gICAgLi4uKGlzUmVuZGVyYWJsZUltYWdlVXJsKGxvZ28pID8geyBsb2dvVXJsOiBsb2dvIH0gOiB7fSksXG4gIH07XG59O1xuXG4vKiogVGhlIHJlcG9zaXRvcnkgYnJhbmQgdXNlZCBieSBldmVyeSBlbWFpbCB1bmxlc3MgZXhwbGljaXRseSBvdmVycmlkZGVuLiAqL1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRFbWFpbEJyYW5kOiBFbWFpbEJyYW5kID0gZW1haWxCcmFuZEZyb21Db250ZXh0KGJyYW5kVXRpbHMuZGVmYXVsdEJyYW5kQ29udGV4dCk7XG5cbi8qKiBNZXJnZSBhIHBhcnRpYWwgY29uc3VtZXIgYnJhbmQgb3ZlciB0aGUgcmVwb3NpdG9yeSBkZWZhdWx0LiAqL1xuZXhwb3J0IGNvbnN0IHJlc29sdmVFbWFpbEJyYW5kID0gKGlucHV0PzogRW1haWxCcmFuZCk6IFJlc29sdmVkRW1haWxCcmFuZCA9PiB7XG4gIGNvbnN0IG1lcmdlZCA9IHsgLi4uZGVmYXVsdEVtYWlsQnJhbmQsIC4uLmlucHV0IH07XG4gIHJldHVybiB7XG4gICAgYWNjZW50OiBtZXJnZWQuYWNjZW50LFxuICAgIG9uQWNjZW50OiBtZXJnZWQub25BY2NlbnQgPz8gXCIjZmZmZmZmXCIsXG4gICAgZm9udEZhbWlseTogbWVyZ2VkLmZvbnRGYW1pbHksXG4gICAgbmFtZTogbWVyZ2VkLm5hbWUgPz8gYnJhbmRVdGlscy5kZWZhdWx0QnJhbmRDb250ZXh0Lm5hbWUsXG4gICAgYmFja2dyb3VuZDogbWVyZ2VkLmJhY2tncm91bmQgPz8gYnJhbmRVdGlscy5kZWZhdWx0QnJhbmRDb250ZXh0LmNvbG9ycy5zdXJmYWNlLFxuICAgIHN1cmZhY2U6IG1lcmdlZC5zdXJmYWNlID8/IGJyYW5kVXRpbHMuZGVmYXVsdEJyYW5kQ29udGV4dC5jb2xvcnMuYmFja2dyb3VuZCxcbiAgICBmb3JlZ3JvdW5kOiBtZXJnZWQuZm9yZWdyb3VuZCA/PyBicmFuZFV0aWxzLmRlZmF1bHRCcmFuZENvbnRleHQuY29sb3JzLmZvcmVncm91bmQsXG4gICAgbXV0ZWQ6IG1lcmdlZC5tdXRlZCA/PyBicmFuZFV0aWxzLmRlZmF1bHRCcmFuZENvbnRleHQuY29sb3JzLm11dGVkLFxuICAgIGJvcmRlcjogbWVyZ2VkLmJvcmRlciA/PyBicmFuZFV0aWxzLmRlZmF1bHRCcmFuZENvbnRleHQuY29sb3JzLmJvcmRlcixcbiAgICB0YWdsaW5lOiBtZXJnZWQudGFnbGluZSA/PyBicmFuZFV0aWxzLmRlZmF1bHRCcmFuZENvbnRleHQudGFnbGluZSxcbiAgICAuLi4obWVyZ2VkLmxvZ29VcmwgPyB7IGxvZ29Vcmw6IG1lcmdlZC5sb2dvVXJsIH0gOiB7fSksXG4gICAgLi4uKG1lcmdlZC53ZWJzaXRlID8geyB3ZWJzaXRlOiBtZXJnZWQud2Vic2l0ZSB9IDoge30pLFxuICB9O1xufTtcblxuLyoqIE5vcm1hbGl6ZSBpbmRlbnRhdGlvbiBpbiBhdXRob3JlZCBjb250ZW50IHdpdGhvdXQgY29uc3RyYWluaW5nIGl0cyBzdHJ1Y3R1cmUuICovXG5leHBvcnQgY29uc3Qgbm9ybWFsaXplRW1haWxNYXJrZG93biA9ICh2YWx1ZTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgY29uc3QgbGluZXMgPSB2YWx1ZS5yZXBsYWNlKC9cXHJcXG4/L2csIFwiXFxuXCIpLnNwbGl0KFwiXFxuXCIpO1xuICB3aGlsZSAobGluZXNbMF0/LnRyaW0oKSA9PT0gXCJcIikgbGluZXMuc2hpZnQoKTtcbiAgd2hpbGUgKGxpbmVzLmF0KC0xKT8udHJpbSgpID09PSBcIlwiKSBsaW5lcy5wb3AoKTtcbiAgY29uc3Qgbm9uQmxhbmsgPSBsaW5lcy5maWx0ZXIoKGxpbmUpID0+IGxpbmUudHJpbSgpLmxlbmd0aCA+IDApO1xuICBjb25zdCBpbmRlbnQgPSBub25CbGFuay5yZWR1Y2UoKG1pbmltdW0sIGxpbmUpID0+IHtcbiAgICBjb25zdCB3aWR0aCA9IGxpbmUubWF0Y2goL15cXHMqLyk/LlswXS5sZW5ndGggPz8gMDtcbiAgICByZXR1cm4gTWF0aC5taW4obWluaW11bSwgd2lkdGgpO1xuICB9LCBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpO1xuICBpZiAoIU51bWJlci5pc0Zpbml0ZShpbmRlbnQpIHx8IGluZGVudCA9PT0gMCkgcmV0dXJuIGxpbmVzLmpvaW4oXCJcXG5cIik7XG4gIHJldHVybiBsaW5lcy5tYXAoKGxpbmUpID0+IGxpbmUuc2xpY2UoTWF0aC5taW4oaW5kZW50LCBsaW5lLmxlbmd0aCkpKS5qb2luKFwiXFxuXCIpO1xufTtcblxuLyoqIFByb3BzIGZvciB0aGUgcmV1c2FibGUgbWVzc2FnZS1ib2R5IGNvbXBvbmVudC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW1haWxCb2R5UHJvcHMge1xuICBib2R5OiBzdHJpbmc7XG4gIGJyYW5kPzogRW1haWxCcmFuZDtcbn1cblxuLyoqIFJlbmRlciByaWNoIG1lc3NhZ2UgY29udGVudCB3aXRoIGVtYWlsLWNsaWVudC1zYWZlIGlubGluZSBzdHlsZXMuICovXG5leHBvcnQgY29uc3QgRW1haWxCb2R5ID0gKHsgYm9keSwgYnJhbmQ6IGJyYW5kSW5wdXQgfTogRW1haWxCb2R5UHJvcHMpID0+IHtcbiAgY29uc3QgdGhlbWUgPSByZXNvbHZlRW1haWxCcmFuZChicmFuZElucHV0KTtcbiAgcmV0dXJuIChcbiAgICA8TWFya2Rvd25cbiAgICAgIG1hcmtkb3duQ29udGFpbmVyU3R5bGVzPXt7XG4gICAgICAgIGNvbG9yOiB0aGVtZS5mb3JlZ3JvdW5kLFxuICAgICAgICBmb250RmFtaWx5OiB0aGVtZS5mb250RmFtaWx5LFxuICAgICAgICBmb250U2l6ZTogXCIxNXB4XCIsXG4gICAgICAgIGxpbmVIZWlnaHQ6IFwiMS42NVwiLFxuICAgICAgfX1cbiAgICAgIG1hcmtkb3duQ3VzdG9tU3R5bGVzPXt7XG4gICAgICAgIGgxOiB7IGNvbG9yOiB0aGVtZS5mb3JlZ3JvdW5kLCBmb250U2l6ZTogXCIzMHB4XCIsIGxpbmVIZWlnaHQ6IFwiMS4yXCIsIG1hcmdpbjogXCIwIDAgMjBweFwiIH0sXG4gICAgICAgIGgyOiB7IGNvbG9yOiB0aGVtZS5mb3JlZ3JvdW5kLCBmb250U2l6ZTogXCIyM3B4XCIsIGxpbmVIZWlnaHQ6IFwiMS4zXCIsIG1hcmdpbjogXCIyOHB4IDAgMTJweFwiIH0sXG4gICAgICAgIGgzOiB7IGNvbG9yOiB0aGVtZS5mb3JlZ3JvdW5kLCBmb250U2l6ZTogXCIxOHB4XCIsIGxpbmVIZWlnaHQ6IFwiMS40XCIsIG1hcmdpbjogXCIyNHB4IDAgMTBweFwiIH0sXG4gICAgICAgIHA6IHsgbWFyZ2luOiBcIjAgMCAxNnB4XCIgfSxcbiAgICAgICAgbGluazogeyBjb2xvcjogdGhlbWUuYWNjZW50LCBmb250V2VpZ2h0OiA2MDAsIHRleHREZWNvcmF0aW9uOiBcInVuZGVybGluZVwiIH0sXG4gICAgICAgIGJsb2NrUXVvdGU6IHtcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLmJhY2tncm91bmQsXG4gICAgICAgICAgYm9yZGVyTGVmdDogYDRweCBzb2xpZCAke3RoZW1lLmFjY2VudH1gLFxuICAgICAgICAgIGJvcmRlclJhZGl1czogXCIwIDEwcHggMTBweCAwXCIsXG4gICAgICAgICAgY29sb3I6IHRoZW1lLmZvcmVncm91bmQsXG4gICAgICAgICAgbWFyZ2luOiBcIjIwcHggMFwiLFxuICAgICAgICAgIHBhZGRpbmc6IFwiMTRweCAxOHB4XCIsXG4gICAgICAgIH0sXG4gICAgICAgIGNvZGVJbmxpbmU6IHtcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLmJhY2tncm91bmQsXG4gICAgICAgICAgYm9yZGVyUmFkaXVzOiBcIjVweFwiLFxuICAgICAgICAgIGNvbG9yOiB0aGVtZS5mb3JlZ3JvdW5kLFxuICAgICAgICAgIGZvbnRGYW1pbHk6IGJyYW5kVXRpbHMuZGVmYXVsdEJyYW5kQ29udGV4dC50eXBvZ3JhcGh5Lm1vbm8sXG4gICAgICAgICAgZm9udFNpemU6IFwiMTNweFwiLFxuICAgICAgICAgIHBhZGRpbmc6IFwiMnB4IDVweFwiLFxuICAgICAgICB9LFxuICAgICAgICBjb2RlQmxvY2s6IHtcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLmZvcmVncm91bmQsXG4gICAgICAgICAgYm9yZGVyUmFkaXVzOiBcIjEwcHhcIixcbiAgICAgICAgICBjb2xvcjogdGhlbWUuc3VyZmFjZSxcbiAgICAgICAgICBmb250RmFtaWx5OiBicmFuZFV0aWxzLmRlZmF1bHRCcmFuZENvbnRleHQudHlwb2dyYXBoeS5tb25vLFxuICAgICAgICAgIGZvbnRTaXplOiBcIjEzcHhcIixcbiAgICAgICAgICBsaW5lSGVpZ2h0OiBcIjEuNTVcIixcbiAgICAgICAgICBtYXJnaW46IFwiMjBweCAwXCIsXG4gICAgICAgICAgcGFkZGluZzogXCIxNnB4XCIsXG4gICAgICAgIH0sXG4gICAgICAgIGhyOiB7IGJvcmRlckNvbG9yOiB0aGVtZS5ib3JkZXIsIG1hcmdpbjogXCIyOHB4IDBcIiB9LFxuICAgICAgICBpbWFnZTogeyBib3JkZXJSYWRpdXM6IFwiMTBweFwiLCBoZWlnaHQ6IFwiYXV0b1wiLCBtYXhXaWR0aDogXCIxMDAlXCIgfSxcbiAgICAgICAgbGk6IHsgbWFyZ2luOiBcIjZweCAwXCIgfSxcbiAgICAgICAgdGFibGU6IHsgYm9yZGVyQ29sbGFwc2U6IFwiY29sbGFwc2VcIiwgbWFyZ2luOiBcIjIwcHggMFwiLCB3aWR0aDogXCIxMDAlXCIgfSxcbiAgICAgICAgdGg6IHtcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLmJhY2tncm91bmQsXG4gICAgICAgICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7dGhlbWUuYm9yZGVyfWAsXG4gICAgICAgICAgcGFkZGluZzogXCI5cHggMTJweFwiLFxuICAgICAgICAgIHRleHRBbGlnbjogXCJsZWZ0XCIsXG4gICAgICAgIH0sXG4gICAgICAgIHRkOiB7XG4gICAgICAgICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7dGhlbWUuYm9yZGVyfWAsXG4gICAgICAgICAgcGFkZGluZzogXCI5cHggMTJweFwiLFxuICAgICAgICAgIHRleHRBbGlnbjogXCJsZWZ0XCIsXG4gICAgICAgIH0sXG4gICAgICB9fVxuICAgID5cbiAgICAgIHtub3JtYWxpemVFbWFpbE1hcmtkb3duKGJvZHkpfVxuICAgIDwvTWFya2Rvd24+XG4gICk7XG59O1xuXG4vKiogUHJvcHMgZm9yIHRoZSBjb21wbGV0ZSBSZWFjdCBFbWFpbCBkb2N1bWVudC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW1haWxEb2N1bWVudFByb3BzIGV4dGVuZHMgRW1haWxCb2R5UHJvcHMge1xuICBzdWJqZWN0Pzogc3RyaW5nO1xuICAvKipcbiAgICogVmlzaWJsZSBoZWFkaW5nIGluc2lkZSB0aGUgZW1haWwgY2FyZC4gT21pdCBpdCBmb3Igb3JkaW5hcnkgbWVzc2FnZXMgc28gdGhlXG4gICAqIHRyYW5zcG9ydCBzdWJqZWN0IHN0YXlzIGEgdHJhbnNwb3J0IHN1YmplY3QgYW5kIGlzIG5vdCByZXBlYXRlZCBhcyBhIGJvZHlcbiAgICogdGl0bGUuIFBhc3MgYSBzaG9ydGVyIGhlYWRpbmcgd2hlbiB0aGUgc3ViamVjdCBjYXJyaWVzIG5vdGlmaWNhdGlvbi1zcGVjaWZpY1xuICAgKiBkZXRhaWxzIChvbmUtdGltZS1jb2RlIG1haWwgaXMgdGhlIG1vdGl2YXRpbmcgY2FzZSkuXG4gICAqL1xuICBoZWFkaW5nPzogc3RyaW5nO1xuICAvKipcbiAgICogT3B0aW9uYWwgZW52ZWxvcGUgcm93cyByZW5kZXJlZCBhYm92ZSB0aGUgYm9keSAoRnJvbSAvIFRvIC8gQ2MgLyDigKYpLiBLZXB0IGZvclxuICAgKiBsb2NhbCBvdXRib3ggcHJldmlld3MgdGhhdCBkZWxpYmVyYXRlbHkgc2hvdyB0aGUgd2lyZSBlbnZlbG9wZTsgZGVsaXZlcmVkXG4gICAqIFNNVFAgbWFpbCBhbmQgYnJvd3NlciBhcHByb3ZhbC9jb21wb3NlIHByZXZpZXdzIGxlYXZlIHRoaXMgdW5zZXQg4oCUIHRob3NlXG4gICAqIHN1cmZhY2VzIHB1dCByZWNpcGllbnRzIGFuZCBhdHRhY2htZW50cyBpbiBjbGllbnQgY2hyb21lIGluc3RlYWQuXG4gICAqL1xuICBoZWFkZXJzPzogUmVhZG9ubHlBcnJheTxyZWFkb25seSBbc3RyaW5nLCBzdHJpbmddPjtcbiAgZm9vdGVyPzogc3RyaW5nO1xuICAvKipcbiAgICogRHJhdyB0aGUgY2FyZCdzIG93biBmcmFtZTogcm91bmRlZCBjb3JuZXJzLCBib3JkZXIsIGRyb3Agc2hhZG93LCBhbmQgdGhlXG4gICAqIDYyMHB4IHJlYWRpbmcgd2lkdGguIERlbGl2ZXJlZCBtYWlsIGtlZXBzIGl0LCBiZWNhdXNlIHRoZSBjYXJkIGZsb2F0cyBvbiB0aGVcbiAgICogY2xpZW50J3MgcGFnZSBiYWNrZ3JvdW5kIGFuZCB0aGUgZnJhbWUgaXMgd2hhdCBzZXBhcmF0ZXMgdGhlIHR3by5cbiAgICpcbiAgICogVHVybiBpdCBvZmYgd2hlbiB0aGUgY2FyZCBhbHJlYWR5IHNpdHMgaW5zaWRlIGEgc3VyZmFjZSB0aGF0IGZyYW1lcyBpdCAtIGFcbiAgICogYnJvd3NlciBwcmV2aWV3J3MgcmVhZGluZyBwYW5lIC0gc28gdGhlIHR3byBmcmFtZXMgZG8gbm90IG5lc3QgaW50byBhIHJvdW5kZWRcbiAgICogY2FyZCBpbnNpZGUgYSByb3VuZGVkIGNhcmQuXG4gICAqL1xuICBmcmFtZWQ/OiBib29sZWFuO1xuICAvKipcbiAgICogUHJlaGVhZGVyIHRleHQ6IHRoZSBzbmlwcGV0IGEgY2xpZW50IHNob3dzIG5leHQgdG8gdGhlIHN1YmplY3QgaW4gYSBsaXN0LCBhbmRcbiAgICogLSB0aGUgcmVhc29uIHRoaXMgaXMgYSBwcm9wIC0gdGhlIHRleHQgYSBtb2JpbGUgT1MgcHV0cyBpbiB0aGUgUFVTSFxuICAgKiBOT1RJRklDQVRJT04gYm9keS5cbiAgICpcbiAgICogRGVmYXVsdHMgdG8gdGhlIHN1YmplY3QuIFNldCBpdCB3aGVuIHRoZSBub3RpZmljYXRpb24gc2hvdWxkIHNheSBzb21ldGhpbmcgdGhlXG4gICAqIHN1YmplY3QgZG9lcyBub3QuIE9uZS10aW1lLWNvZGUgbWFpbCBpcyB0aGUgY2FzZSB0aGF0IG1vdGl2YXRlZCBpdDogaU9TIHJlYWRzXG4gICAqIGFuIGluY29taW5nIG5vdGlmaWNhdGlvbidzIHRleHQgdG8gb2ZmZXIgYW4gYXV0b2ZpbGwgY29kZSAobmF0aXZlbHkgZm9yIE1haWxcbiAgICogYW5kIE1lc3NhZ2VzLCBhbmQgc2luY2UgaU9TIDI2IGZvciBhbnkgYXBwJ3Mgbm90aWZpY2F0aW9uLCBHbWFpbCBpbmNsdWRlZCksIHNvXG4gICAqIGEgY29kZSB0aGF0IGFwcGVhcnMgb25seSBpbiB0aGUgQk9EWSBpcyBuZXZlciBzZWVuIC0gdGhlIG5vdGlmaWNhdGlvbiBjYXJyaWVzXG4gICAqIHRoZSBzdWJqZWN0IGFuZCB0aGlzIHNuaXBwZXQsIG5vdGhpbmcgbW9yZS5cbiAgICovXG4gIHByZXZpZXc/OiBzdHJpbmc7XG59XG5cbmZ1bmN0aW9uIEJyYW5kTWFyayh7IHRoZW1lIH06IHsgdGhlbWU6IFJlc29sdmVkRW1haWxCcmFuZCB9KTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgaWYgKHRoZW1lLmxvZ29VcmwpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPEltZ1xuICAgICAgICBzcmM9e3RoZW1lLmxvZ29Vcmx9XG4gICAgICAgIGFsdD17dGhlbWUubmFtZX1cbiAgICAgICAgaGVpZ2h0PVwiMzRcIlxuICAgICAgICBzdHlsZT17eyBkaXNwbGF5OiBcImJsb2NrXCIsIGhlaWdodDogXCIzNHB4XCIsIHdpZHRoOiBcImF1dG9cIiB9fVxuICAgICAgLz5cbiAgICApO1xuICB9XG4gIHJldHVybiAoXG4gICAgPFRleHRcbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIGNvbG9yOiB0aGVtZS5vbkFjY2VudCxcbiAgICAgICAgZm9udFNpemU6IFwiMjBweFwiLFxuICAgICAgICBmb250V2VpZ2h0OiA4MDAsXG4gICAgICAgIGxldHRlclNwYWNpbmc6IFwiLTAuM3B4XCIsXG4gICAgICAgIG1hcmdpbjogMCxcbiAgICAgIH19XG4gICAgPlxuICAgICAge3RoZW1lLm5hbWV9XG4gICAgPC9UZXh0PlxuICApO1xufVxuXG5mdW5jdGlvbiBFbnZlbG9wZUhlYWRlcnMoe1xuICBoZWFkZXJzLFxuICB0aGVtZSxcbn06IHtcbiAgaGVhZGVyczogRW1haWxEb2N1bWVudFByb3BzW1wiaGVhZGVyc1wiXTtcbiAgdGhlbWU6IFJlc29sdmVkRW1haWxCcmFuZDtcbn0pIHtcbiAgaWYgKCFoZWFkZXJzPy5sZW5ndGgpIHJldHVybiBudWxsO1xuICByZXR1cm4gKFxuICAgIDxTZWN0aW9uXG4gICAgICBzdHlsZT17e1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLmJhY2tncm91bmQsXG4gICAgICAgIGJvcmRlclJhZGl1czogXCIxMHB4XCIsXG4gICAgICAgIG1hcmdpbjogXCIwIDAgMjRweFwiLFxuICAgICAgICBwYWRkaW5nOiBcIjE0cHggMTZweFwiLFxuICAgICAgfX1cbiAgICA+XG4gICAgICB7aGVhZGVycy5tYXAoKFtsYWJlbCwgdmFsdWVdKSA9PiAoXG4gICAgICAgIDxSb3cga2V5PXtgJHtsYWJlbH06JHt2YWx1ZX1gfT5cbiAgICAgICAgICA8Q29sdW1uXG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICBjb2xvcjogdGhlbWUubXV0ZWQsXG4gICAgICAgICAgICAgIGZvbnRTaXplOiBcIjEycHhcIixcbiAgICAgICAgICAgICAgZm9udFdlaWdodDogNzAwLFxuICAgICAgICAgICAgICBwYWRkaW5nOiBcIjNweCAxMnB4IDNweCAwXCIsXG4gICAgICAgICAgICAgIHdpZHRoOiBcIjcwcHhcIixcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgIDwvQ29sdW1uPlxuICAgICAgICAgIDxDb2x1bW4gc3R5bGU9e3sgY29sb3I6IHRoZW1lLmZvcmVncm91bmQsIGZvbnRTaXplOiBcIjEzcHhcIiwgcGFkZGluZzogXCIzcHggMFwiIH19PlxuICAgICAgICAgICAge3ZhbHVlfVxuICAgICAgICAgIDwvQ29sdW1uPlxuICAgICAgICA8L1Jvdz5cbiAgICAgICkpfVxuICAgIDwvU2VjdGlvbj5cbiAgKTtcbn1cblxuLyoqIEJyYW5kZWQgbWVzc2FnZSBjYXJkIHNoYXJlZCBieSB0aGUgZnVsbCBkb2N1bWVudCBhbmQgYnJvd3NlciBwcmV2aWV3cy4gKi9cbmV4cG9ydCBjb25zdCBFbWFpbENhcmQgPSAoe1xuICBib2R5LFxuICBoZWFkaW5nLFxuICBoZWFkZXJzLFxuICBmb290ZXIsXG4gIGZyYW1lZCA9IHRydWUsXG4gIGJyYW5kOiBicmFuZElucHV0LFxufTogRW1haWxEb2N1bWVudFByb3BzKSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gcmVzb2x2ZUVtYWlsQnJhbmQoYnJhbmRJbnB1dCk7XG4gIHJldHVybiAoXG4gICAgPENvbnRhaW5lclxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5zdXJmYWNlLFxuICAgICAgICBmb250RmFtaWx5OiB0aGVtZS5mb250RmFtaWx5LFxuICAgICAgICBtYXJnaW46IFwiMCBhdXRvXCIsXG4gICAgICAgIC4uLihmcmFtZWRcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7dGhlbWUuYm9yZGVyfWAsXG4gICAgICAgICAgICAgIGJvcmRlclJhZGl1czogXCIxNnB4XCIsXG4gICAgICAgICAgICAgIGJveFNoYWRvdzogXCIwIDhweCAzMHB4IHJnYmEoMjcsNDksNTcsMC4wOClcIixcbiAgICAgICAgICAgICAgbWF4V2lkdGg6IFwiNjIwcHhcIixcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHsgbWF4V2lkdGg6IFwiMTAwJVwiIH0pLFxuICAgICAgfX1cbiAgICA+XG4gICAgICA8U2VjdGlvblxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUuYWNjZW50LFxuICAgICAgICAgIC8vIFRoZSBjb3JuZXJzIGFyZSBzZXQgb24gdGhlIGJhbmQgaXRzZWxmIHJhdGhlciB0aGFuIGNsaXBwZWQgYnkgdGhlXG4gICAgICAgICAgLy8gY29udGFpbmVyOiBSZWFjdCBFbWFpbCByZW5kZXJzIHRoZSBjb250YWluZXIgYXMgYSA8dGFibGU+LCB3aGljaFxuICAgICAgICAgIC8vIGBvdmVyZmxvdzogaGlkZGVuYCBkb2VzIG5vdCByZWxpYWJseSBjbGlwLCBzbyB0aGUgYmFuZCBuZWVkcyBpdHMgb3duXG4gICAgICAgICAgLy8gcm91bmRlZCBjb3JuZXJzIHRvIHN0YXkgaW5zaWRlIHRoZSBjb250YWluZXIgZWRnZS5cbiAgICAgICAgICAuLi4oZnJhbWVkID8geyBib3JkZXJSYWRpdXM6IFwiMTVweCAxNXB4IDAgMFwiIH0gOiB7fSksXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxSb3c+XG4gICAgICAgICAgPENvbHVtbiBzdHlsZT17eyBwYWRkaW5nOiBcIjI2cHggMzZweFwiIH19PlxuICAgICAgICAgICAgPEJyYW5kTWFyayB0aGVtZT17dGhlbWV9IC8+XG4gICAgICAgICAgPC9Db2x1bW4+XG4gICAgICAgIDwvUm93PlxuICAgICAgPC9TZWN0aW9uPlxuICAgICAgPFNlY3Rpb24+XG4gICAgICAgIDxSb3c+XG4gICAgICAgICAgPENvbHVtbiBzdHlsZT17eyBwYWRkaW5nOiBcIjM4cHggMzhweCAyOHB4XCIgfX0+XG4gICAgICAgICAgICB7aGVhZGluZyA/IChcbiAgICAgICAgICAgICAgPEhlYWRpbmdcbiAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgY29sb3I6IHRoZW1lLmZvcmVncm91bmQsXG4gICAgICAgICAgICAgICAgICBmb250U2l6ZTogXCIyOHB4XCIsXG4gICAgICAgICAgICAgICAgICBsZXR0ZXJTcGFjaW5nOiBcIi0wLjVweFwiLFxuICAgICAgICAgICAgICAgICAgbGluZUhlaWdodDogXCIxLjJcIixcbiAgICAgICAgICAgICAgICAgIG1hcmdpbjogXCIwIDAgMjRweFwiLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7aGVhZGluZ31cbiAgICAgICAgICAgICAgPC9IZWFkaW5nPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8RW52ZWxvcGVIZWFkZXJzIGhlYWRlcnM9e2hlYWRlcnN9IHRoZW1lPXt0aGVtZX0gLz5cbiAgICAgICAgICAgIDxFbWFpbEJvZHkgYm9keT17Ym9keX0gYnJhbmQ9e3RoZW1lfSAvPlxuICAgICAgICAgIDwvQ29sdW1uPlxuICAgICAgICA8L1Jvdz5cbiAgICAgIDwvU2VjdGlvbj5cbiAgICAgIDxIciBzdHlsZT17eyBib3JkZXJDb2xvcjogdGhlbWUuYm9yZGVyLCBtYXJnaW46IDAgfX0gLz5cbiAgICAgIDxTZWN0aW9uPlxuICAgICAgICA8Um93PlxuICAgICAgICAgIDxDb2x1bW4gc3R5bGU9e3sgcGFkZGluZzogXCIyNHB4IDM4cHggMzBweFwiIH19PlxuICAgICAgICAgICAgPFRleHRcbiAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICBjb2xvcjogdGhlbWUubXV0ZWQsXG4gICAgICAgICAgICAgICAgZm9udFNpemU6IFwiMTJweFwiLFxuICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQ6IFwiMS41NVwiLFxuICAgICAgICAgICAgICAgIG1hcmdpbjogMCxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2Zvb3RlciA/PyB0aGVtZS50YWdsaW5lfXtcIiBcIn1cbiAgICAgICAgICAgICAge3RoZW1lLndlYnNpdGUgPyAoXG4gICAgICAgICAgICAgICAgPExpbmtcbiAgICAgICAgICAgICAgICAgIGhyZWY9e3RoZW1lLndlYnNpdGV9XG4gICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdGhlbWUuYWNjZW50LFxuICAgICAgICAgICAgICAgICAgICB0ZXh0RGVjb3JhdGlvbjogXCJub25lXCIsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt0aGVtZS5uYW1lfVxuICAgICAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgPC9Db2x1bW4+XG4gICAgICAgIDwvUm93PlxuICAgICAgPC9TZWN0aW9uPlxuICAgIDwvQ29udGFpbmVyPlxuICApO1xufTtcblxuLyoqIENvbXBsZXRlIHJlc3BvbnNpdmUsIGJyYW5kZWQgUmVhY3QgRW1haWwgZG9jdW1lbnQuICovXG5leHBvcnQgY29uc3QgRW1haWxEb2N1bWVudCA9IChwcm9wczogRW1haWxEb2N1bWVudFByb3BzKSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gcmVzb2x2ZUVtYWlsQnJhbmQocHJvcHMuYnJhbmQpO1xuICBjb25zdCBwYWdlU3R5bGU6IFJlYWN0LkNTU1Byb3BlcnRpZXMgPSB7XG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5iYWNrZ3JvdW5kLFxuICAgIGZvbnRGYW1pbHk6IHRoZW1lLmZvbnRGYW1pbHksXG4gICAgbWFyZ2luOiAwLFxuICAgIHBhZGRpbmc6IFwiMjhweCAxMnB4XCIsXG4gIH07XG4gIHJldHVybiAoXG4gICAgPEh0bWwgbGFuZz1cImVuXCI+XG4gICAgICA8SGVhZCAvPlxuICAgICAgPFByZXZpZXc+e3Byb3BzLnByZXZpZXcgPz8gcHJvcHMuc3ViamVjdCA/PyBcIk1lc3NhZ2VcIn08L1ByZXZpZXc+XG4gICAgICA8Qm9keSBzdHlsZT17cGFnZVN0eWxlfT5cbiAgICAgICAgPEVtYWlsQ2FyZCB7Li4ucHJvcHN9IC8+XG4gICAgICA8L0JvZHk+XG4gICAgPC9IdG1sPlxuICApO1xufTtcbiJdfQ==
package/package.json CHANGED
@@ -23,7 +23,7 @@
23
23
  "typescript": "^5.9.3"
24
24
  },
25
25
  "dependencies": {
26
- "@dbx-tools/shared-core": "^0.9.132",
26
+ "@dbx-tools/shared-core": "^0.9.133",
27
27
  "@react-email/components": "^1.0.12",
28
28
  "react": "~19.2.4"
29
29
  },
@@ -49,7 +49,7 @@
49
49
  "./package.json": "./package.json"
50
50
  }
51
51
  },
52
- "version": "0.9.132",
52
+ "version": "0.9.133",
53
53
  "types": "./lib/index.d.ts",
54
54
  "dbxToolsConfig": {
55
55
  "tags": [
package/src/template.tsx CHANGED
@@ -327,7 +327,6 @@ export const EmailCard = ({
327
327
  <Section
328
328
  style={{
329
329
  backgroundColor: theme.accent,
330
- padding: "22px 30px",
331
330
  // The corners are set on the band itself rather than clipped by the
332
331
  // container: React Email renders the container as a <table>, which
333
332
  // `overflow: hidden` does not reliably clip, so the band needs its own
@@ -335,48 +334,60 @@ export const EmailCard = ({
335
334
  ...(framed ? { borderRadius: "15px 15px 0 0" } : {}),
336
335
  }}
337
336
  >
338
- <BrandMark theme={theme} />
337
+ <Row>
338
+ <Column style={{ padding: "26px 36px" }}>
339
+ <BrandMark theme={theme} />
340
+ </Column>
341
+ </Row>
339
342
  </Section>
340
- <Section style={{ padding: "34px 34px 24px" }}>
341
- {heading ? (
342
- <Heading
343
- style={{
344
- color: theme.foreground,
345
- fontSize: "28px",
346
- letterSpacing: "-0.5px",
347
- lineHeight: "1.2",
348
- margin: "0 0 24px",
349
- }}
350
- >
351
- {heading}
352
- </Heading>
353
- ) : null}
354
- <EnvelopeHeaders headers={headers} theme={theme} />
355
- <EmailBody body={body} brand={theme} />
343
+ <Section>
344
+ <Row>
345
+ <Column style={{ padding: "38px 38px 28px" }}>
346
+ {heading ? (
347
+ <Heading
348
+ style={{
349
+ color: theme.foreground,
350
+ fontSize: "28px",
351
+ letterSpacing: "-0.5px",
352
+ lineHeight: "1.2",
353
+ margin: "0 0 24px",
354
+ }}
355
+ >
356
+ {heading}
357
+ </Heading>
358
+ ) : null}
359
+ <EnvelopeHeaders headers={headers} theme={theme} />
360
+ <EmailBody body={body} brand={theme} />
361
+ </Column>
362
+ </Row>
356
363
  </Section>
357
364
  <Hr style={{ borderColor: theme.border, margin: 0 }} />
358
- <Section style={{ padding: "20px 34px 26px" }}>
359
- <Text
360
- style={{
361
- color: theme.muted,
362
- fontSize: "12px",
363
- lineHeight: "1.55",
364
- margin: 0,
365
- }}
366
- >
367
- {footer ?? theme.tagline}{" "}
368
- {theme.website ? (
369
- <Link
370
- href={theme.website}
365
+ <Section>
366
+ <Row>
367
+ <Column style={{ padding: "24px 38px 30px" }}>
368
+ <Text
371
369
  style={{
372
- color: theme.accent,
373
- textDecoration: "none",
370
+ color: theme.muted,
371
+ fontSize: "12px",
372
+ lineHeight: "1.55",
373
+ margin: 0,
374
374
  }}
375
375
  >
376
- {theme.name}
377
- </Link>
378
- ) : null}
379
- </Text>
376
+ {footer ?? theme.tagline}{" "}
377
+ {theme.website ? (
378
+ <Link
379
+ href={theme.website}
380
+ style={{
381
+ color: theme.accent,
382
+ textDecoration: "none",
383
+ }}
384
+ >
385
+ {theme.name}
386
+ </Link>
387
+ ) : null}
388
+ </Text>
389
+ </Column>
390
+ </Row>
380
391
  </Section>
381
392
  </Container>
382
393
  );