@blocknote/xl-odt-exporter 0.47.2 → 0.48.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.
@@ -1 +1 @@
1
- {"version":3,"file":"blocknote-xl-odt-exporter.js","sources":["../src/odt/defaultSchema/blocks.tsx","../src/odt/defaultSchema/inlineContent.tsx","../src/odt/defaultSchema/styles.ts","../src/odt/defaultSchema/index.ts","../../../shared/util/fileUtil.ts","../../../shared/util/imageUtil.ts","../src/odt/template/styles.xml?raw","../src/odt/odtExporter.tsx"],"sourcesContent":["import {\n BlockFromConfig,\n BlockMapping,\n createPageBreakBlockConfig,\n DefaultBlockSchema,\n DefaultProps,\n mapTableCell,\n StyledText,\n TableCell,\n} from \"@blocknote/core\";\nimport { ODTExporter } from \"../odtExporter.js\";\nimport { multiColumnSchema } from \"@blocknote/xl-multi-column\";\n\nexport const getTabs = (nestingLevel: number) => {\n return Array.from({ length: nestingLevel }, () => <text:tab />);\n};\n\nconst createParagraphStyle = (\n exporter: ODTExporter<any, any, any>,\n props: Partial<DefaultProps>,\n parentStyleName = \"Standard\",\n styleAttributes: Record<string, string> = {},\n paragraphStyleAttributes: Record<string, string> = {},\n textStyleAttributes: Record<string, string> = {},\n) => {\n const paragraphStyles: Record<string, string> = {\n ...paragraphStyleAttributes,\n };\n const textStyles: Record<string, string> = { ...textStyleAttributes };\n\n if (props.textAlignment && props.textAlignment !== \"left\") {\n const alignmentMap = {\n left: \"start\",\n center: \"center\",\n right: \"end\",\n justify: \"justify\",\n };\n paragraphStyles[\"fo:text-align\"] =\n alignmentMap[props.textAlignment as keyof typeof alignmentMap];\n }\n\n const backgroundColor =\n props.backgroundColor && props.backgroundColor !== \"default\"\n ? exporter.options.colors[props.backgroundColor]?.background\n : undefined;\n\n if (backgroundColor) {\n paragraphStyles[\"fo:background-color\"] = backgroundColor;\n }\n\n if (props.textColor && props.textColor !== \"default\") {\n const color =\n exporter.options.colors[\n props.textColor as keyof typeof exporter.options.colors\n ]?.text ?? props.textColor;\n textStyles[\"fo:color\"] = color;\n }\n\n if (\n !backgroundColor &&\n !Object.keys(styleAttributes).length &&\n !Object.keys(paragraphStyles).length &&\n !Object.keys(textStyles).length\n ) {\n return parentStyleName || \"Standard\";\n }\n\n return exporter.registerStyle((name) => (\n <style:style\n style:family=\"paragraph\"\n style:name={name}\n style:parent-style-name={parentStyleName}\n {...styleAttributes}\n >\n {backgroundColor && (\n <loext:graphic-properties\n draw:fill=\"solid\"\n draw:fill-color={backgroundColor}\n />\n )}\n {Object.keys(paragraphStyles).length > 0 && (\n <style:paragraph-properties {...paragraphStyles} />\n )}\n {Object.keys(textStyles).length > 0 && (\n <style:text-properties {...textStyles}></style:text-properties>\n )}\n </style:style>\n ));\n};\n\nconst createTableCellStyle = (\n exporter: ODTExporter<any, any, any>,\n): ((cell: TableCell<any, any>) => string) => {\n // To not create a new style for each cell within a table, we cache the styles based on unique cell properties\n const cellStyleCache = new Map<string, string>();\n\n return (cell: TableCell<any, any>) => {\n const key = `${cell.props.backgroundColor}-${cell.props.textColor}-${cell.props.textAlignment}`;\n\n if (cellStyleCache.has(key)) {\n return cellStyleCache.get(key)!;\n }\n\n const styleName = exporter.registerStyle((name) => (\n <style:style style:family=\"table-cell\" style:name={name}>\n <style:table-cell-properties\n fo:border=\"0.5pt solid #000000\"\n style:writing-mode=\"lr-tb\"\n fo:padding-top=\"0in\"\n fo:padding-left=\"0.075in\"\n fo:padding-bottom=\"0in\"\n fo:padding-right=\"0.075in\"\n fo:background-color={\n cell.props.backgroundColor !== \"default\" &&\n cell.props.backgroundColor\n ? exporter.options.colors?.[cell.props.backgroundColor]\n ?.background\n : undefined\n }\n // TODO This is not applying because the children set their own colors\n fo:color={\n cell.props.textColor !== \"default\" && cell.props.textColor\n ? exporter.options.colors[cell.props.textColor]?.text\n : undefined\n }\n />\n </style:style>\n ));\n\n cellStyleCache.set(key, styleName);\n\n return styleName;\n };\n};\nconst createTableStyle = (\n exporter: ODTExporter<any, any, any>,\n options: { width: number },\n) => {\n const tableStyleName = exporter.registerStyle((name) => (\n <style:style style:family=\"table\" style:name={name}>\n <style:table-properties\n table:align=\"left\"\n style:writing-mode=\"lr-tb\"\n style:width={`${options.width}pt`}\n />\n </style:style>\n ));\n\n return tableStyleName;\n};\n\nconst wrapWithLists = (\n content: React.ReactNode,\n level: number,\n): React.ReactNode => {\n if (level <= 0) {\n return content;\n }\n return (\n <text:list>\n <text:list-item>{wrapWithLists(content, level - 1)}</text:list-item>\n </text:list>\n );\n};\n\nexport const odtBlockMappingForDefaultSchema: BlockMapping<\n DefaultBlockSchema & {\n pageBreak: ReturnType<typeof createPageBreakBlockConfig>;\n } & typeof multiColumnSchema.blockSchema,\n any,\n any,\n React.ReactNode,\n React.ReactNode\n> = {\n paragraph: (block, exporter, nestingLevel) => {\n const styleName = createParagraphStyle(\n exporter as ODTExporter<any, any, any>,\n block.props,\n );\n\n return (\n <text:p text:style-name={styleName}>\n {getTabs(nestingLevel)}\n {exporter.transformInlineContent(block.content)}\n </text:p>\n );\n },\n\n heading: (block, exporter, nestingLevel) => {\n const customStyleName = createParagraphStyle(\n exporter as ODTExporter<any, any, any>,\n block.props,\n \"Heading_20_\" + block.props.level,\n );\n const styleName = customStyleName;\n\n return (\n <text:h\n text:outline-level={`${block.props.level}`}\n text:style-name={styleName}\n >\n {getTabs(nestingLevel)}\n {exporter.transformInlineContent(block.content)}\n </text:h>\n );\n },\n\n quote: (block, exporter, nestingLevel) => {\n const customStyleName = createParagraphStyle(\n exporter as ODTExporter<any, any, any>,\n block.props,\n \"Standard\",\n {},\n {\n \"fo:border-left\": \"2pt solid #7D797A\",\n \"fo:padding-left\": \"0.25in\",\n },\n {\n \"fo:color\": \"#7D797A\",\n },\n );\n const styleName = customStyleName;\n\n return (\n <text:p text:style-name={styleName}>\n {getTabs(nestingLevel)}\n {exporter.transformInlineContent(block.content)}\n </text:p>\n );\n },\n\n /**\n * Note: we wrap each list item in it's own list element.\n * This is not the cleanest solution, it would be nicer to recognize subsequent\n * list items and wrap them in the same list element.\n *\n * However, Word DocX -> ODT export actually does the same thing, so\n * for now it seems reasonable.\n *\n * (LibreOffice does nicely wrap the list items in the same list element)\n */\n toggleListItem: (block, exporter) => (\n <text:p text:style-name=\"Standard\">\n {\"> \"}\n {exporter.transformInlineContent(block.content)}\n </text:p>\n ),\n\n bulletListItem: (block, exporter, nestingLevel) => {\n const styleName = createParagraphStyle(\n exporter as ODTExporter<any, any, any>,\n block.props,\n \"Standard\",\n { \"style:list-style-name\": \"WWNum1\" },\n );\n return (\n <text:list text:style-name=\"WWNum1\">\n <text:list-item>\n {wrapWithLists(\n <text:p text:style-name={styleName}>\n {exporter.transformInlineContent(block.content)}\n </text:p>,\n nestingLevel,\n )}\n </text:list-item>\n </text:list>\n );\n },\n\n numberedListItem: (block, exporter, nestingLevel, numberedListIndex) => {\n const styleName = createParagraphStyle(\n exporter as ODTExporter<any, any, any>,\n block.props,\n );\n // continue numbering from the previous list item if this is not the first item\n const continueNumbering = (numberedListIndex || 0) > 1 ? \"true\" : \"false\";\n\n return (\n <text:list\n text:style-name=\"No_20_List\"\n text:continue-numbering={continueNumbering}\n >\n <text:list-item\n {...(continueNumbering === \"false\" && {\n \"text:start-value\": block.props.start,\n })}\n >\n {wrapWithLists(\n <text:p text:style-name={styleName}>\n {exporter.transformInlineContent(block.content)}\n </text:p>,\n nestingLevel,\n )}\n </text:list-item>\n </text:list>\n );\n },\n\n checkListItem: (block, exporter) => (\n <text:p text:style-name=\"Standard\">\n {block.props.checked ? \"☒ \" : \"☐ \"}\n {exporter.transformInlineContent(block.content)}\n </text:p>\n ),\n\n pageBreak: async () => {\n return <text:p text:style-name=\"PageBreak\" />;\n },\n\n divider: (block, exporter) => {\n const styleName = createParagraphStyle(\n exporter as ODTExporter<any, any, any>,\n block.props,\n \"Standard\",\n {},\n {\n \"fo:border-top\": \"1pt solid #cccccc\",\n \"fo:margin-top\": \"11pt\",\n \"fo:margin-bottom\": \"12pt\",\n \"fo:padding-top\": \"0pt\",\n \"fo:padding-bottom\": \"0pt\",\n },\n );\n\n return <text:p text:style-name={styleName} />;\n },\n\n column: (_block, exporter, _nestingLevel, _numberedListIndex, children) => {\n const ex = exporter as ODTExporter<any, any, any>;\n const style = ex.registerStyle((name) => (\n <style:style style:name={name} style:family=\"table-cell\">\n <style:table-cell-properties\n style:writing-mode=\"lr-tb\"\n fo:border=\"none\"\n fo:padding-top=\"0in\"\n fo:padding-left=\"0.075in\"\n fo:padding-bottom=\"0in\"\n fo:padding-right=\"0.075in\"\n />\n </style:style>\n ));\n\n return (\n <table:table-cell table:style-name={style}>{children}</table:table-cell>\n );\n },\n columnList: (\n block,\n exporter,\n _nestingLevel,\n _numberedListIndex,\n children,\n ) => {\n const blockWithChildren = block as BlockFromConfig<\n {\n type: \"columnList\";\n content: \"none\";\n propSchema: Record<string, any>;\n },\n any,\n any\n >;\n const ex = exporter as ODTExporter<any, any, any>;\n const style = ex.registerStyle((name) => (\n <style:style style:name={name} style:family=\"table\">\n <style:table-properties\n table:align=\"margins\"\n style:writing-mode=\"lr-tb\"\n />\n </style:style>\n ));\n\n return (\n <table:table table:name={block.id} table:style-name={style}>\n {(blockWithChildren.children || []).map((column, index) => {\n const style = ex.registerStyle((name) => (\n <style:style style:name={name} style:family=\"table-column\">\n <style:table-column-properties\n style:rel-column-width={`${column.props.width * 100}*`}\n />\n </style:style>\n ));\n\n return <table:table-column table:style-name={style} key={index} />;\n })}\n <table:table-row>{children}</table:table-row>\n </table:table>\n );\n },\n\n image: async (block, exporter) => {\n const odtExporter = exporter as ODTExporter<any, any, any>;\n\n const { path, mimeType, ...originalDimensions } =\n await odtExporter.registerPicture(block.props.url);\n const styleName = createParagraphStyle(\n exporter as ODTExporter<any, any, any>,\n block.props,\n );\n const width = block.props.previewWidth || originalDimensions.width;\n const height =\n (originalDimensions.height / originalDimensions.width) * width;\n const captionHeight = 20;\n const imageFrame = (\n <text:p text:style-name={block.props.caption ? \"Caption\" : styleName}>\n <draw:frame\n draw:style-name=\"Frame\"\n style:rel-height=\"scale\"\n svg:width={`${width}px`}\n svg:height={`${height}px`}\n style:rel-width={block.props.caption ? \"100%\" : `${width}px`}\n {...(!block.props.caption && {\n \"text:anchor-type\": \"as-char\",\n })}\n >\n <draw:image\n xlink:type=\"simple\"\n xlink:show=\"embed\"\n xlink:actuate=\"onLoad\"\n xlink:href={path}\n draw:mime-type={mimeType}\n />\n </draw:frame>\n <text:line-break />\n <text:span text:style-name=\"Caption\">{block.props.caption}</text:span>\n </text:p>\n );\n\n if (block.props.caption) {\n return (\n <text:p text:style-name={styleName}>\n <draw:frame\n draw:style-name=\"Frame\"\n style:rel-height=\"scale\"\n style:rel-width={`${width}px`}\n svg:width={`${width}px`}\n svg:height={`${height + captionHeight}px`}\n text:anchor-type=\"as-char\"\n >\n <draw:text-box>{imageFrame}</draw:text-box>\n </draw:frame>\n </text:p>\n );\n }\n\n return imageFrame;\n },\n\n table: (block, exporter) => {\n const DEFAULT_COLUMN_WIDTH_PX = 120;\n const tableWidthPX =\n block.content.columnWidths.reduce(\n (totalWidth, colWidth) =>\n (totalWidth || 0) + (colWidth || DEFAULT_COLUMN_WIDTH_PX),\n 0,\n ) || 0;\n const tableWidthPT = tableWidthPX * 0.75;\n const ex = exporter as ODTExporter<any, any, any>;\n const getCellStyleName = createTableCellStyle(ex);\n const tableStyleName = createTableStyle(ex, { width: tableWidthPT });\n\n return (\n <table:table table:name={block.id} table:style-name={tableStyleName}>\n {block.content.rows[0]?.cells.map((_, i) => {\n const colWidthPX =\n block.content.columnWidths[i] || DEFAULT_COLUMN_WIDTH_PX;\n const colWidthPT = colWidthPX * 0.75;\n const style = ex.registerStyle((name) => (\n <style:style style:name={name} style:family=\"table-column\">\n <style:table-column-properties\n style:column-width={`${colWidthPT}pt`}\n />\n </style:style>\n ));\n return <table:table-column table:style-name={style} key={i} />;\n })}\n {block.content.rows.map((row, rowIndex) => (\n <table:table-row key={rowIndex}>\n {row.cells.map((c, colIndex) => {\n const cell = mapTableCell(c);\n return (\n <table:table-cell\n key={`${rowIndex}-${colIndex}`}\n table:style-name={getCellStyleName(cell)}\n office:value-type=\"string\"\n style:text-align-source=\"fix\"\n style:paragraph-properties-text-align={\n cell.props.textAlignment\n }\n >\n <text:p text:style-name=\"Standard\">\n {exporter.transformInlineContent(cell.content)}\n </text:p>\n </table:table-cell>\n );\n })}\n </table:table-row>\n ))}\n </table:table>\n );\n },\n\n codeBlock: (block) => {\n const textContent = (block.content as StyledText<any>[])[0]?.text || \"\";\n\n return (\n <text:p text:style-name=\"Codeblock\">\n {...textContent.split(\"\\n\").map((line, index) => {\n return (\n <>\n {index !== 0 && <text:line-break />}\n {line}\n </>\n );\n })}\n </text:p>\n );\n },\n\n file: async (block) => {\n return (\n <>\n <text:p style:style-name=\"Standard\">\n {block.props.url ? (\n <text:a\n xlink:type=\"simple\"\n text:style-name=\"Internet_20_link\"\n office:target-frame-name=\"_top\"\n xlink:show=\"replace\"\n xlink:href={block.props.url}\n >\n <text:span text:style-name=\"Internet_20_link\">\n Open file\n </text:span>\n </text:a>\n ) : (\n \"Open file\"\n )}\n </text:p>\n {block.props.caption && (\n <text:p text:style-name=\"Caption\">{block.props.caption}</text:p>\n )}\n </>\n );\n },\n\n video: (block) => (\n <>\n <text:p style:style-name=\"Standard\">\n <text:a\n xlink:type=\"simple\"\n text:style-name=\"Internet_20_link\"\n office:target-frame-name=\"_top\"\n xlink:show=\"replace\"\n xlink:href={block.props.url}\n >\n <text:span text:style-name=\"Internet_20_link\">Open video</text:span>\n </text:a>\n </text:p>\n {block.props.caption && (\n <text:p text:style-name=\"Caption\">{block.props.caption}</text:p>\n )}\n </>\n ),\n\n audio: (block) => (\n <>\n <text:p style:style-name=\"Standard\">\n <text:a\n xlink:type=\"simple\"\n text:style-name=\"Internet_20_link\"\n office:target-frame-name=\"_top\"\n xlink:show=\"replace\"\n xlink:href={block.props.url}\n >\n <text:span text:style-name=\"Internet_20_link\">Open audio</text:span>\n </text:a>\n </text:p>\n {block.props.caption && (\n <text:p text:style-name=\"Caption\">{block.props.caption}</text:p>\n )}\n </>\n ),\n};\n","import {\n DefaultInlineContentSchema,\n InlineContentMapping,\n} from \"@blocknote/core\";\n\nexport const odtInlineContentMappingForDefaultSchema: InlineContentMapping<\n DefaultInlineContentSchema,\n any,\n React.JSX.Element,\n React.JSX.Element\n> = {\n link: (ic, exporter) => {\n const content = ic.content.map((c) => exporter.transformStyledText(c));\n\n return (\n <text:a\n xlink:type=\"simple\"\n text:style-name=\"Internet_20_link\"\n office:target-frame-name=\"_top\"\n xlink:show=\"replace\"\n xlink:href={ic.href}\n >\n {content}\n </text:a>\n );\n },\n\n text: (ic, exporter) => {\n return exporter.transformStyledText(ic);\n },\n};\n","import { DefaultStyleSchema, StyleMapping } from \"@blocknote/core\";\nexport const odtStyleMappingForDefaultSchema: StyleMapping<\n DefaultStyleSchema,\n Record<string, string>\n> = {\n bold: (val): Record<string, string> => {\n if (!val) {\n return {};\n }\n return { \"fo:font-weight\": \"bold\" };\n },\n\n italic: (val): Record<string, string> => {\n if (!val) {\n return {};\n }\n return { \"fo:font-style\": \"italic\" };\n },\n\n underline: (val): Record<string, string> => {\n if (!val) {\n return {};\n }\n return { \"style:text-underline-style\": \"solid\" };\n },\n\n strike: (val): Record<string, string> => {\n if (!val) {\n return {};\n }\n return { \"style:text-line-through-style\": \"solid\" };\n },\n\n textColor: (val, exporter): Record<string, string> => {\n if (!val) {\n return {};\n }\n const color = exporter.options.colors[val]?.text;\n if (!color) {\n return {};\n }\n return { \"fo:color\": color };\n },\n\n backgroundColor: (val, exporter): Record<string, string> => {\n if (!val) {\n return {};\n }\n const color = exporter.options.colors[val]?.background;\n if (!color) {\n return {};\n }\n return { \"fo:background-color\": color };\n },\n\n code: (val): Record<string, string> => {\n if (!val) {\n return {};\n }\n return { \"style:font-name\": \"Courier New\" };\n },\n};\n","import { odtBlockMappingForDefaultSchema } from \"./blocks.js\";\nimport { odtInlineContentMappingForDefaultSchema } from \"./inlineContent.js\";\nimport { odtStyleMappingForDefaultSchema } from \"./styles.js\";\n\nexport const odtDefaultSchemaMappings = {\n blockMapping: odtBlockMappingForDefaultSchema,\n inlineContentMapping: odtInlineContentMappingForDefaultSchema,\n styleMapping: odtStyleMappingForDefaultSchema,\n};\n","/**\n *\n * Helper functions so that we can import files both on vitest, browser and node\n * TODO: should find a way to test automatically in all environments\n */\n\nexport async function loadFileDataUrl(\n requireUrl: { default: string },\n mimeType: string,\n) {\n if (import.meta.env.NODE_ENV === \"test\") {\n const buffer = await loadFileBuffer(requireUrl);\n const fileBase64 = buffer.toString(\"base64\");\n\n const dataUrl = `data:${mimeType};base64,${fileBase64}`;\n return dataUrl;\n } else {\n // in browser, this is already a data url\n return requireUrl.default as string;\n }\n}\n\nexport async function loadFontDataUrl(requireUrl: { default: string }) {\n return loadFileDataUrl(requireUrl, \"font/ttf\");\n}\n\nexport async function loadFileBuffer(requireUrl: {\n default: string;\n}): Promise<Buffer | ArrayBuffer> {\n if (import.meta.env.NODE_ENV === \"test\") {\n // in vitest, this is the url we need to load with readfilesync\n // eslint-disable-next-line\n const fs = require(\"fs\");\n let url = requireUrl.default;\n\n if (url.startsWith(\"/@fs/\")) {\n url = url.substring(\"/@fs\".length);\n }\n // On Windows, vite/vitest may yield paths like \"/C:/...\" after removing /@fs\n // Node on Windows treats paths starting with \"/\" as relative to current drive,\n // which would produce \"C:\\C:\\...\". Strip leading slash when followed by a drive letter.\n if (/^\\/[A-Za-z]:/.test(url)) {\n url = url.slice(1);\n }\n const buffer = fs.readFileSync(url);\n return buffer;\n } else {\n // in browser, this is already a data url\n const dataUrl = requireUrl.default as string;\n // convert to buffer on browser\n const response = await fetch(dataUrl);\n const arrayBuffer = await response.arrayBuffer();\n return arrayBuffer;\n }\n}\n\n/**\n * usage:\n * \n * await loadFontDataUrl(\n await import(\"../fonts/inter/Inter_18pt-Italic.ttf\")\n );\n */\n","export async function getImageDimensions(blob: Blob) {\n if (typeof window !== \"undefined\" && import.meta.env.NODE_ENV !== \"test\") {\n const bmp = await createImageBitmap(blob);\n const { width, height } = bmp;\n bmp.close(); // free memory\n return { width, height };\n } else {\n // node or vitest\n const imageMetaFunc = (await import(\"image-meta\")).imageMeta;\n const bytes = new Uint8Array(await blob.arrayBuffer());\n const meta = imageMetaFunc(bytes);\n if (!meta.width || !meta.height) {\n throw new Error(\"Image dimensions not found\");\n }\n return { width: meta.width, height: meta.height };\n }\n}\n","export default \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?>\\n<office:document-styles xmlns:css3t=\\\"http://www.w3.org/TR/css3-text/\\\"\\n xmlns:grddl=\\\"http://www.w3.org/2003/g/data-view#\\\" xmlns:xhtml=\\\"http://www.w3.org/1999/xhtml\\\"\\n xmlns:dom=\\\"http://www.w3.org/2001/xml-events\\\"\\n xmlns:script=\\\"urn:oasis:names:tc:opendocument:xmlns:script:1.0\\\"\\n xmlns:form=\\\"urn:oasis:names:tc:opendocument:xmlns:form:1.0\\\"\\n xmlns:math=\\\"http://www.w3.org/1998/Math/MathML\\\"\\n xmlns:number=\\\"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\\\"\\n xmlns:field=\\\"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0\\\"\\n xmlns:meta=\\\"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\\\"\\n xmlns:loext=\\\"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\\\"\\n xmlns:officeooo=\\\"http://openoffice.org/2009/office\\\"\\n xmlns:table=\\\"urn:oasis:names:tc:opendocument:xmlns:table:1.0\\\"\\n xmlns:chart=\\\"urn:oasis:names:tc:opendocument:xmlns:chart:1.0\\\"\\n xmlns:svg=\\\"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\\\"\\n xmlns:rpt=\\\"http://openoffice.org/2005/report\\\"\\n xmlns:dr3d=\\\"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\\\"\\n xmlns:tableooo=\\\"http://openoffice.org/2009/table\\\"\\n xmlns:draw=\\\"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\\\"\\n xmlns:of=\\\"urn:oasis:names:tc:opendocument:xmlns:of:1.2\\\"\\n xmlns:text=\\\"urn:oasis:names:tc:opendocument:xmlns:text:1.0\\\"\\n xmlns:style=\\\"urn:oasis:names:tc:opendocument:xmlns:style:1.0\\\"\\n xmlns:dc=\\\"http://purl.org/dc/elements/1.1/\\\"\\n xmlns:calcext=\\\"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0\\\"\\n xmlns:oooc=\\\"http://openoffice.org/2004/calc\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"\\n xmlns:drawooo=\\\"http://openoffice.org/2010/draw\\\" xmlns:ooow=\\\"http://openoffice.org/2004/writer\\\"\\n xmlns:fo=\\\"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\\\"\\n xmlns:ooo=\\\"http://openoffice.org/2004/office\\\"\\n xmlns:office=\\\"urn:oasis:names:tc:opendocument:xmlns:office:1.0\\\" office:version=\\\"1.3\\\">\\n <office:font-face-decls>\\n <style:font-face style:name=\\\"Geist Mono\\\" svg:font-family=\\\"Geist Mono\\\" />\\n <style:font-face style:name=\\\"Inter 18pt\\\" svg:font-family=\\\"Inter 18pt\\\"\\n style:font-pitch=\\\"variable\\\" />\\n <style:font-face style:name=\\\"Liberation Serif\\\"\\n svg:font-family=\\\"&apos;Liberation Serif&apos;\\\" style:font-family-generic=\\\"roman\\\"\\n style:font-pitch=\\\"variable\\\" />\\n <style:font-face style:name=\\\"OpenSymbol\\\" svg:font-family=\\\"OpenSymbol\\\"\\n style:font-charset=\\\"x-symbol\\\" />\\n <style:font-face style:name=\\\"PingFang SC\\\" svg:font-family=\\\"&apos;PingFang SC&apos;\\\"\\n style:font-family-generic=\\\"system\\\" style:font-pitch=\\\"variable\\\" />\\n <style:font-face style:name=\\\"Tahoma\\\" svg:font-family=\\\"Tahoma\\\"\\n style:font-family-generic=\\\"system\\\" style:font-pitch=\\\"variable\\\" />\\n <style:font-face style:name=\\\"Times New Roman (Body CS)\\\"\\n svg:font-family=\\\"&apos;Times New Roman (Body CS)&apos;\\\"\\n style:font-family-generic=\\\"system\\\" style:font-pitch=\\\"variable\\\" />\\n </office:font-face-decls>\\n <office:styles>\\n <draw:gradient draw:name=\\\"Gradient_20_1\\\" draw:display-name=\\\"Gradient 1\\\" draw:style=\\\"linear\\\"\\n draw:start-color=\\\"#000000\\\" draw:end-color=\\\"#ffffff\\\" draw:start-intensity=\\\"100%\\\"\\n draw:end-intensity=\\\"100%\\\" draw:angle=\\\"0deg\\\" draw:border=\\\"0%\\\">\\n <loext:gradient-stop svg:offset=\\\"0\\\" loext:color-type=\\\"rgb\\\" loext:color-value=\\\"#000000\\\" />\\n <loext:gradient-stop svg:offset=\\\"1\\\" loext:color-type=\\\"rgb\\\" loext:color-value=\\\"#ffffff\\\" />\\n </draw:gradient>\\n <draw:hatch draw:name=\\\"Red_20_90_20_Degrees_20_Crossed_20_1\\\"\\n draw:display-name=\\\"Red 90 Degrees Crossed 1\\\" draw:style=\\\"single\\\" draw:color=\\\"#3465a4\\\"\\n draw:distance=\\\"0.0079in\\\" draw:rotation=\\\"0\\\" />\\n <style:default-style style:family=\\\"graphic\\\">\\n <style:graphic-properties svg:stroke-color=\\\"#3465a4\\\" draw:fill-color=\\\"#729fcf\\\"\\n fo:wrap-option=\\\"no-wrap\\\" draw:shadow-offset-x=\\\"0.1181in\\\"\\n draw:shadow-offset-y=\\\"0.1181in\\\" draw:start-line-spacing-horizontal=\\\"0.1114in\\\"\\n draw:start-line-spacing-vertical=\\\"0.1114in\\\"\\n draw:end-line-spacing-horizontal=\\\"0.1114in\\\"\\n draw:end-line-spacing-vertical=\\\"0.1114in\\\" style:flow-with-text=\\\"false\\\" />\\n <style:paragraph-properties style:text-autospace=\\\"ideograph-alpha\\\"\\n style:line-break=\\\"strict\\\" loext:tab-stop-distance=\\\"0in\\\" style:writing-mode=\\\"lr-tb\\\"\\n style:font-independent-line-spacing=\\\"false\\\">\\n <style:tab-stops />\\n </style:paragraph-properties>\\n <style:text-properties style:font-name=\\\"Inter 18pt\\\"\\n fo:font-family=\\\"Inter 18pt\\\" style:font-style-name=\\\"Regular\\\"\\n style:font-pitch=\\\"variable\\\" style:font-name-complex=\\\"Times New Roman (Body CS)\\\"\\n style:font-family-complex=\\\"&apos;Times New Roman (Body CS)&apos;\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\"\\n style:use-window-font-color=\\\"true\\\" loext:opacity=\\\"0%\\\"\\n fo:font-size=\\\"12pt\\\" fo:language=\\\"en\\\" fo:country=\\\"NL\\\"\\n style:letter-kerning=\\\"true\\\" style:font-size-asian=\\\"12pt\\\"\\n style:language-asian=\\\"en\\\" style:country-asian=\\\"GB\\\"\\n style:font-size-complex=\\\"12pt\\\" style:language-complex=\\\"ar\\\"\\n style:country-complex=\\\"SA\\\" />\\n </style:default-style>\\n <style:default-style style:family=\\\"paragraph\\\">\\n <style:paragraph-properties fo:hyphenation-ladder-count=\\\"no-limit\\\"\\n fo:hyphenation-keep=\\\"auto\\\" loext:hyphenation-keep-type=\\\"column\\\"\\n style:text-autospace=\\\"ideograph-alpha\\\" style:punctuation-wrap=\\\"hanging\\\"\\n style:line-break=\\\"strict\\\" style:tab-stop-distance=\\\"0.139in\\\"\\n style:writing-mode=\\\"page\\\" />\\n <style:text-properties style:font-name=\\\"Inter 18pt\\\"\\n fo:font-family=\\\"Inter 18pt\\\" style:font-style-name=\\\"Regular\\\"\\n style:font-pitch=\\\"variable\\\" style:font-name-complex=\\\"Times New Roman (Body CS)\\\"\\n style:font-family-complex=\\\"&apos;Times New Roman (Body CS)&apos;\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\"\\n style:use-window-font-color=\\\"true\\\" loext:opacity=\\\"0%\\\"\\n fo:font-size=\\\"12pt\\\" fo:language=\\\"en\\\" fo:country=\\\"NL\\\"\\n style:letter-kerning=\\\"true\\\" style:font-size-asian=\\\"12pt\\\"\\n style:language-asian=\\\"en\\\" style:country-asian=\\\"GB\\\"\\n style:font-size-complex=\\\"12pt\\\" style:language-complex=\\\"ar\\\"\\n style:country-complex=\\\"SA\\\" fo:hyphenate=\\\"false\\\" fo:hyphenation-remain-char-count=\\\"2\\\"\\n fo:hyphenation-push-char-count=\\\"2\\\" loext:hyphenation-no-caps=\\\"false\\\"\\n loext:hyphenation-no-last-word=\\\"false\\\" loext:hyphenation-word-char-count=\\\"5\\\"\\n loext:hyphenation-zone=\\\"no-limit\\\" />\\n </style:default-style>\\n <style:default-style style:family=\\\"table\\\">\\n <style:table-properties table:border-model=\\\"collapsing\\\" />\\n </style:default-style>\\n <style:default-style style:family=\\\"table-row\\\">\\n <style:table-row-properties fo:keep-together=\\\"auto\\\" />\\n </style:default-style>\\n <style:style style:name=\\\"Standard\\\" style:family=\\\"paragraph\\\" style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.0311in\\\" fo:margin-bottom=\\\"0.0311in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:line-height=\\\"150%\\\" fo:text-align=\\\"start\\\"\\n style:justify-single-word=\\\"false\\\" fo:orphans=\\\"2\\\" fo:widows=\\\"2\\\"\\n style:writing-mode=\\\"lr-tb\\\" />\\n <style:text-properties style:font-name=\\\"Inter 18pt\\\"\\n fo:font-family=\\\"Inter 18pt\\\" style:font-style-name=\\\"Regular\\\"\\n style:font-pitch=\\\"variable\\\" style:font-name-complex=\\\"Times New Roman (Body CS)\\\"\\n style:font-family-complex=\\\"&apos;Times New Roman (Body CS)&apos;\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\" />\\n </style:style>\\n <style:style style:name=\\\"Heading\\\" style:family=\\\"paragraph\\\"\\n style:parent-style-name=\\\"Standard\\\" style:next-style-name=\\\"Text_20_body\\\"\\n style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.1665in\\\" fo:margin-bottom=\\\"0.0835in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:keep-with-next=\\\"always\\\" />\\n <style:text-properties style:font-family-generic=\\\"swiss\\\"\\n style:font-pitch=\\\"variable\\\" fo:font-size=\\\"14pt\\\" style:font-name-asian=\\\"PingFang SC\\\"\\n style:font-family-asian=\\\"&apos;PingFang SC&apos;\\\"\\n style:font-family-generic-asian=\\\"system\\\" style:font-pitch-asian=\\\"variable\\\"\\n style:font-size-asian=\\\"14pt\\\" style:font-name-complex=\\\"Arial Unicode MS1\\\"\\n style:font-family-complex=\\\"&apos;Arial Unicode MS&apos;\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\"\\n style:font-size-complex=\\\"14pt\\\" />\\n </style:style>\\n <style:style style:name=\\\"Text_20_body\\\" style:display-name=\\\"Text body\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\" style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0in\\\" fo:margin-bottom=\\\"0.0972in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:line-height=\\\"115%\\\" />\\n </style:style>\\n <style:style style:name=\\\"List\\\" style:family=\\\"paragraph\\\"\\n style:parent-style-name=\\\"Text_20_body\\\" style:class=\\\"list\\\">\\n <style:text-properties style:font-size-asian=\\\"12pt\\\"\\n style:font-name-complex=\\\"Arial Unicode MS\\\"\\n style:font-family-complex=\\\"&apos;Arial Unicode MS&apos;\\\"\\n style:font-family-generic-complex=\\\"swiss\\\" />\\n </style:style>\\n <style:style style:name=\\\"Caption\\\" style:family=\\\"paragraph\\\"\\n style:parent-style-name=\\\"Standard\\\" style:next-style-name=\\\"Standard\\\" style:class=\\\"extra\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0in\\\" fo:margin-bottom=\\\"0.139in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:line-height=\\\"100%\\\" />\\n <style:text-properties fo:color=\\\"#0e2841\\\" loext:opacity=\\\"100%\\\" fo:font-size=\\\"9pt\\\"\\n fo:font-style=\\\"italic\\\" style:font-size-asian=\\\"9pt\\\" style:font-style-asian=\\\"italic\\\"\\n style:font-size-complex=\\\"9pt\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark2\\\" loext:color-type=\\\"theme\\\" />\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Index\\\" style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:class=\\\"index\\\">\\n <style:paragraph-properties text:number-lines=\\\"false\\\" text:line-number=\\\"0\\\" />\\n <style:text-properties style:font-size-asian=\\\"12pt\\\"\\n style:font-name-complex=\\\"Arial Unicode MS\\\"\\n style:font-family-complex=\\\"&apos;Arial Unicode MS&apos;\\\"\\n style:font-family-generic-complex=\\\"swiss\\\" />\\n </style:style>\\n <style:style style:name=\\\"Heading_20_1\\\" style:display-name=\\\"Heading 1\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_1_20_Char\\\"\\n style:default-outline-level=\\\"1\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:text-properties fo:font-size=\\\"24pt\\\" fo:font-weight=\\\"bold\\\"\\n style:font-size-asian=\\\"24pt\\\" style:font-weight-asian=\\\"bold\\\"\\n style:font-size-complex=\\\"24pt\\\" />\\n </style:style>\\n <style:style style:name=\\\"Heading_20_2\\\" style:display-name=\\\"Heading 2\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_2_20_Char\\\"\\n style:default-outline-level=\\\"2\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:text-properties fo:font-size=\\\"18pt\\\" fo:font-weight=\\\"bold\\\"\\n style:font-size-asian=\\\"18pt\\\" style:font-weight-asian=\\\"bold\\\"\\n style:font-size-complex=\\\"18pt\\\" />\\n </style:style>\\n <style:style style:name=\\\"Heading_20_3\\\" style:display-name=\\\"Heading 3\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_3_20_Char\\\"\\n style:default-outline-level=\\\"3\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:text-properties fo:font-size=\\\"14pt\\\" fo:font-weight=\\\"bold\\\"\\n style:font-size-asian=\\\"14pt\\\" style:font-weight-asian=\\\"bold\\\"\\n style:font-size-complex=\\\"14pt\\\" />\\n </style:style>\\n <style:style style:name=\\\"Heading_20_4\\\" style:display-name=\\\"Heading 4\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_4_20_Char\\\"\\n style:default-outline-level=\\\"4\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.0555in\\\" fo:margin-bottom=\\\"0.028in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:keep-together=\\\"always\\\"\\n fo:keep-with-next=\\\"always\\\" />\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-style-asian=\\\"italic\\\"\\n style:font-name-complex=\\\"F2\\\" style:font-family-generic-complex=\\\"system\\\"\\n style:font-pitch-complex=\\\"variable\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_5\\\" style:display-name=\\\"Heading 5\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_5_20_Char\\\"\\n style:default-outline-level=\\\"5\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.0555in\\\" fo:margin-bottom=\\\"0.028in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:keep-together=\\\"always\\\"\\n fo:keep-with-next=\\\"always\\\" />\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-name-complex=\\\"F2\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_6\\\" style:display-name=\\\"Heading 6\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_6_20_Char\\\"\\n style:default-outline-level=\\\"6\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.028in\\\" fo:margin-bottom=\\\"0in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:keep-together=\\\"always\\\"\\n fo:keep-with-next=\\\"always\\\" />\\n <style:text-properties fo:color=\\\"#595959\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-style-asian=\\\"italic\\\"\\n style:font-name-complex=\\\"F2\\\" style:font-family-generic-complex=\\\"system\\\"\\n style:font-pitch-complex=\\\"variable\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"3490\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_7\\\" style:display-name=\\\"Heading 7\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_7_20_Char\\\"\\n style:default-outline-level=\\\"7\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.028in\\\" fo:margin-bottom=\\\"0in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:keep-together=\\\"always\\\"\\n fo:keep-with-next=\\\"always\\\" />\\n <style:text-properties fo:color=\\\"#595959\\\" loext:opacity=\\\"100%\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-name-complex=\\\"F2\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"3490\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_8\\\" style:display-name=\\\"Heading 8\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_8_20_Char\\\"\\n style:default-outline-level=\\\"8\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.0311in\\\" fo:margin-bottom=\\\"0in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:keep-together=\\\"always\\\"\\n fo:keep-with-next=\\\"always\\\" />\\n <style:text-properties fo:color=\\\"#272727\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-style-asian=\\\"italic\\\"\\n style:font-name-complex=\\\"F2\\\" style:font-family-generic-complex=\\\"system\\\"\\n style:font-pitch-complex=\\\"variable\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"1529\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_9\\\" style:display-name=\\\"Heading 9\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_9_20_Char\\\"\\n style:default-outline-level=\\\"9\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.0311in\\\" fo:margin-bottom=\\\"0in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:keep-together=\\\"always\\\"\\n fo:keep-with-next=\\\"always\\\" />\\n <style:text-properties fo:color=\\\"#272727\\\" loext:opacity=\\\"100%\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-name-complex=\\\"F2\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"1529\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Title\\\" style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Title_20_Char\\\"\\n style:class=\\\"chapter\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.0311in\\\" fo:margin-bottom=\\\"0.0555in\\\"\\n style:contextual-spacing=\\\"true\\\" fo:line-height=\\\"100%\\\" />\\n <style:text-properties\\n fo:font-size=\\\"28pt\\\" fo:letter-spacing=\\\"-0.0071in\\\" style:letter-kerning=\\\"true\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-size-asian=\\\"28pt\\\"\\n style:font-name-complex=\\\"F2\\\" style:font-family-generic-complex=\\\"system\\\"\\n style:font-pitch-complex=\\\"variable\\\" style:font-size-complex=\\\"28pt\\\" />\\n </style:style>\\n <style:style style:name=\\\"Subtitle\\\" style:family=\\\"paragraph\\\"\\n style:parent-style-name=\\\"Standard\\\" style:next-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Subtitle_20_Char\\\" style:class=\\\"chapter\\\">\\n <style:text-properties fo:color=\\\"#595959\\\" loext:opacity=\\\"100%\\\" fo:font-size=\\\"14pt\\\"\\n fo:letter-spacing=\\\"0.0102in\\\" style:font-name-asian=\\\"F2\\\"\\n style:font-family-generic-asian=\\\"system\\\" style:font-pitch-asian=\\\"variable\\\"\\n style:font-size-asian=\\\"14pt\\\" style:font-name-complex=\\\"F2\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\"\\n style:font-size-complex=\\\"14pt\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"3490\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Quote\\\" style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Quote_20_Char\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.111in\\\" fo:margin-bottom=\\\"0.0311in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:text-align=\\\"center\\\"\\n style:justify-single-word=\\\"false\\\" />\\n <style:text-properties fo:color=\\\"#404040\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-style-asian=\\\"italic\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"List_20_Paragraph\\\" style:display-name=\\\"List Paragraph\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\">\\n <style:paragraph-properties fo:margin-left=\\\"0.5in\\\" fo:margin-top=\\\"0.0311in\\\"\\n fo:margin-bottom=\\\"0.0311in\\\" style:contextual-spacing=\\\"true\\\" />\\n </style:style>\\n <style:style style:name=\\\"Intense_20_Quote\\\" style:display-name=\\\"Intense Quote\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Intense_20_Quote_20_Char\\\">\\n <style:paragraph-properties fo:margin-left=\\\"0.6in\\\" fo:margin-right=\\\"0.6in\\\"\\n fo:margin-top=\\\"0.25in\\\" fo:margin-bottom=\\\"0.25in\\\" style:contextual-spacing=\\\"false\\\"\\n fo:text-align=\\\"center\\\" style:justify-single-word=\\\"false\\\" fo:padding-left=\\\"0in\\\"\\n fo:padding-right=\\\"0in\\\" fo:padding-top=\\\"0.139in\\\" fo:padding-bottom=\\\"0.139in\\\"\\n fo:border-left=\\\"none\\\" fo:border-right=\\\"none\\\" fo:border-top=\\\"0.51pt solid #0f4761\\\"\\n fo:border-bottom=\\\"0.51pt solid #0f4761\\\" />\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-style-asian=\\\"italic\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"PageBreak\\\" style:family=\\\"paragraph\\\"\\n style:parent-style-name=\\\"Standard\\\">\\n <style:paragraph-properties fo:break-before=\\\"page\\\" />\\n </style:style>\\n <style:style style:name=\\\"Codeblock\\\" style:family=\\\"paragraph\\\"\\n style:parent-style-name=\\\"Standard\\\">\\n <loext:graphic-properties draw:fill=\\\"solid\\\" draw:fill-color=\\\"#161616\\\" />\\n <style:paragraph-properties fo:line-height=\\\"100%\\\" fo:background-color=\\\"#161616\\\" />\\n <style:text-properties fo:color=\\\"#e1e4e8\\\" loext:opacity=\\\"100%\\\"\\n style:font-name=\\\"Geist Mono\\\"\\n fo:font-family=\\\"Geist Mono\\\" />\\n </style:style>\\n <style:style style:name=\\\"Heading_20_1_20_Char\\\" style:display-name=\\\"Heading 1 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_1\\\">\\n <style:text-properties fo:font-size=\\\"20pt\\\"\\n style:font-size-asian=\\\"20pt\\\"\\n style:font-size-complex=\\\"20pt\\\" />\\n </style:style>\\n <style:style style:name=\\\"Heading_20_2_20_Char\\\" style:display-name=\\\"Heading 2 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_2\\\">\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\" fo:font-size=\\\"16pt\\\"\\n style:font-size-asian=\\\"16pt\\\" style:font-size-complex=\\\"16pt\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_3_20_Char\\\" style:display-name=\\\"Heading 3 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_3\\\">\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\" fo:font-size=\\\"14pt\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-size-asian=\\\"14pt\\\"\\n style:font-name-complex=\\\"F2\\\" style:font-family-generic-complex=\\\"system\\\"\\n style:font-pitch-complex=\\\"variable\\\" style:font-size-complex=\\\"14pt\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_4_20_Char\\\" style:display-name=\\\"Heading 4 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_4\\\">\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-style-asian=\\\"italic\\\"\\n style:font-name-complex=\\\"F2\\\" style:font-family-generic-complex=\\\"system\\\"\\n style:font-pitch-complex=\\\"variable\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_5_20_Char\\\" style:display-name=\\\"Heading 5 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_5\\\">\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-name-complex=\\\"F2\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_6_20_Char\\\" style:display-name=\\\"Heading 6 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_6\\\">\\n <style:text-properties fo:color=\\\"#595959\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-style-asian=\\\"italic\\\"\\n style:font-name-complex=\\\"F2\\\" style:font-family-generic-complex=\\\"system\\\"\\n style:font-pitch-complex=\\\"variable\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"3490\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_7_20_Char\\\" style:display-name=\\\"Heading 7 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_7\\\">\\n <style:text-properties fo:color=\\\"#595959\\\" loext:opacity=\\\"100%\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-name-complex=\\\"F2\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"3490\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_8_20_Char\\\" style:display-name=\\\"Heading 8 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_8\\\">\\n <style:text-properties fo:color=\\\"#272727\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-style-asian=\\\"italic\\\"\\n style:font-name-complex=\\\"F2\\\" style:font-family-generic-complex=\\\"system\\\"\\n style:font-pitch-complex=\\\"variable\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"1529\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_9_20_Char\\\" style:display-name=\\\"Heading 9 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_9\\\">\\n <style:text-properties fo:color=\\\"#272727\\\" loext:opacity=\\\"100%\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-name-complex=\\\"F2\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"1529\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Title_20_Char\\\" style:display-name=\\\"Title Char\\\" style:family=\\\"text\\\"\\n style:parent-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Title\\\">\\n <style:text-properties style:font-name=\\\"Inter 18pt\\\" fo:font-size=\\\"28pt\\\"\\n fo:letter-spacing=\\\"-0.0071in\\\"\\n style:letter-kerning=\\\"true\\\"\\n style:font-size-asian=\\\"28pt\\\"\\n style:font-size-complex=\\\"28pt\\\" />\\n </style:style>\\n <style:style style:name=\\\"Subtitle_20_Char\\\" style:display-name=\\\"Subtitle Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Subtitle\\\">\\n <style:text-properties fo:color=\\\"#595959\\\" loext:opacity=\\\"100%\\\" fo:font-size=\\\"14pt\\\"\\n fo:letter-spacing=\\\"0.0102in\\\" style:font-name-asian=\\\"F2\\\"\\n style:font-family-generic-asian=\\\"system\\\" style:font-pitch-asian=\\\"variable\\\"\\n style:font-size-asian=\\\"14pt\\\" style:font-name-complex=\\\"F2\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\"\\n style:font-size-complex=\\\"14pt\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"3490\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Quote_20_Char\\\" style:display-name=\\\"Quote Char\\\" style:family=\\\"text\\\"\\n style:parent-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Quote\\\">\\n <style:text-properties fo:color=\\\"#404040\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-style-asian=\\\"italic\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Intense_20_Emphasis\\\" style:display-name=\\\"Intense Emphasis\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\">\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-style-asian=\\\"italic\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Intense_20_Quote_20_Char\\\" style:display-name=\\\"Intense Quote Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Intense_20_Quote\\\">\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-style-asian=\\\"italic\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Intense_20_Reference\\\" style:display-name=\\\"Intense Reference\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\">\\n <style:text-properties fo:font-variant=\\\"small-caps\\\" fo:color=\\\"#0f4761\\\"\\n loext:opacity=\\\"100%\\\" fo:letter-spacing=\\\"0.0035in\\\" fo:font-weight=\\\"bold\\\"\\n style:font-weight-asian=\\\"bold\\\" style:font-weight-complex=\\\"bold\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Internet_20_link\\\" style:display-name=\\\"Internet link\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\">\\n <style:text-properties style:font-name=\\\"Inter 18pt\\\" style:font-name-asian=\\\"Inter 18pt\\\"\\n style:font-name-complex=\\\"Times New Roman (Body CS)\\\" fo:color=\\\"#0000ef\\\"\\n loext:opacity=\\\"100%\\\"\\n style:text-underline-type=\\\"single\\\" style:text-underline-style=\\\"solid\\\"\\n style:text-underline-width=\\\"auto\\\" style:text-underline-mode=\\\"continuous\\\"\\n style:text-underline-color=\\\"font-color\\\" />\\n </style:style>\\n <style:style style:name=\\\"Unresolved_20_Mention\\\" style:display-name=\\\"Unresolved Mention\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\">\\n <style:text-properties fo:color=\\\"#605e5c\\\" loext:opacity=\\\"100%\\\"\\n fo:background-color=\\\"#e1dfdd\\\" />\\n </style:style>\\n <style:style style:name=\\\"ListLabel_20_1\\\" style:display-name=\\\"ListLabel 1\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_2\\\" style:display-name=\\\"ListLabel 2\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_3\\\" style:display-name=\\\"ListLabel 3\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_4\\\" style:display-name=\\\"ListLabel 4\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_5\\\" style:display-name=\\\"ListLabel 5\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_6\\\" style:display-name=\\\"ListLabel 6\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_7\\\" style:display-name=\\\"ListLabel 7\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_8\\\" style:display-name=\\\"ListLabel 8\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_9\\\" style:display-name=\\\"ListLabel 9\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_10\\\" style:display-name=\\\"ListLabel 10\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_11\\\" style:display-name=\\\"ListLabel 11\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_12\\\" style:display-name=\\\"ListLabel 12\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_13\\\" style:display-name=\\\"ListLabel 13\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_14\\\" style:display-name=\\\"ListLabel 14\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_15\\\" style:display-name=\\\"ListLabel 15\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_16\\\" style:display-name=\\\"ListLabel 16\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_17\\\" style:display-name=\\\"ListLabel 17\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_18\\\" style:display-name=\\\"ListLabel 18\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_19\\\" style:display-name=\\\"ListLabel 19\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_20\\\" style:display-name=\\\"ListLabel 20\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_21\\\" style:display-name=\\\"ListLabel 21\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_22\\\" style:display-name=\\\"ListLabel 22\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_23\\\" style:display-name=\\\"ListLabel 23\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_24\\\" style:display-name=\\\"ListLabel 24\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_25\\\" style:display-name=\\\"ListLabel 25\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_26\\\" style:display-name=\\\"ListLabel 26\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_27\\\" style:display-name=\\\"ListLabel 27\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_28\\\" style:display-name=\\\"ListLabel 28\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"Graphics\\\" style:family=\\\"graphic\\\">\\n <style:graphic-properties text:anchor-type=\\\"paragraph\\\" svg:x=\\\"0in\\\" svg:y=\\\"0in\\\"\\n style:wrap=\\\"dynamic\\\" style:number-wrapped-paragraphs=\\\"no-limit\\\"\\n style:wrap-contour=\\\"false\\\" style:vertical-pos=\\\"top\\\" style:vertical-rel=\\\"paragraph\\\"\\n style:horizontal-pos=\\\"center\\\" style:horizontal-rel=\\\"paragraph\\\" draw:fill=\\\"none\\\" />\\n </style:style>\\n <style:style style:name=\\\"Frame\\\" style:family=\\\"graphic\\\">\\n <style:graphic-properties fo:margin-left=\\\"0in\\\" fo:margin-right=\\\"0in\\\" fo:margin-top=\\\"0in\\\"\\n fo:margin-bottom=\\\"0in\\\" style:run-through=\\\"foreground\\\" style:wrap=\\\"dynamic\\\"\\n style:number-wrapped-paragraphs=\\\"no-limit\\\" style:vertical-pos=\\\"from-top\\\"\\n style:horizontal-pos=\\\"center\\\" style:horizontal-rel=\\\"paragraph\\\" fo:padding=\\\"0in\\\"\\n draw:fill=\\\"none\\\"\\n draw:stroke=\\\"none\\\"\\n fo:border=\\\"none\\\"\\n style:shadow=\\\"none\\\" svg:stroke-color=\\\"transparent\\\"\\n draw:shadow-opacity=\\\"100%\\\"\\n loext:rel-width-rel=\\\"paragraph\\\" />\\n </style:style>\\n <text:outline-style style:name=\\\"Outline\\\">\\n <text:outline-level-style text:level=\\\"1\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"2\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"3\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"4\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"5\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"6\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"7\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"8\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"9\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"10\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n </text:outline-style>\\n <text:list-style style:name=\\\"No_20_List\\\" style:display-name=\\\"No List\\\">\\n <text:list-level-style-number text:level=\\\"1\\\" loext:num-list-format=\\\"%1%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"0.5in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"0.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"2\\\" loext:num-list-format=\\\"%2%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"0.75in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"0.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"3\\\" loext:num-list-format=\\\"%3%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"1in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"1in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"4\\\" loext:num-list-format=\\\"%4%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"1.25in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"1.25in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"5\\\" loext:num-list-format=\\\"%5%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"1.5in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"1.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"6\\\" loext:num-list-format=\\\"%6%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"1.75in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"1.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"7\\\" loext:num-list-format=\\\"%7%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"2in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"2in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"8\\\" loext:num-list-format=\\\"%8%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"2.25in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"2.25in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"9\\\" loext:num-list-format=\\\"%9%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"2.5in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"2.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"10\\\" loext:num-list-format=\\\"%10%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"2.75in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"2.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n </text:list-style>\\n <text:list-style style:name=\\\"WWNum1\\\">\\n <text:list-level-style-bullet text:level=\\\"1\\\" text:style-name=\\\"ListLabel_20_1\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"0.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"2\\\" text:style-name=\\\"ListLabel_20_2\\\"\\n loext:num-list-format=\\\"◦\\\" style:num-suffix=\\\"◦\\\" text:bullet-char=\\\"◦\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"3\\\" text:style-name=\\\"ListLabel_20_3\\\"\\n loext:num-list-format=\\\"▪\\\" style:num-suffix=\\\"▪\\\" text:bullet-char=\\\"▪\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"4\\\" text:style-name=\\\"ListLabel_20_4\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"2in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"5\\\" text:style-name=\\\"ListLabel_20_5\\\"\\n loext:num-list-format=\\\"◦\\\" style:num-suffix=\\\"◦\\\" text:bullet-char=\\\"◦\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"2.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"6\\\" text:style-name=\\\"ListLabel_20_6\\\"\\n loext:num-list-format=\\\"▪\\\" style:num-suffix=\\\"▪\\\" text:bullet-char=\\\"▪\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"3in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"7\\\" text:style-name=\\\"ListLabel_20_7\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"3.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"8\\\" text:style-name=\\\"ListLabel_20_8\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"4in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"9\\\" text:style-name=\\\"ListLabel_20_9\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"4.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-number text:level=\\\"10\\\" loext:num-list-format=\\\"%10%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"2.75in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"2.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n </text:list-style>\\n <text:list-style style:name=\\\"WWNum2\\\">\\n <text:list-level-style-bullet text:level=\\\"1\\\" text:style-name=\\\"ListLabel_20_10\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"0.25in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"2\\\" text:style-name=\\\"ListLabel_20_11\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"0.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"3\\\" text:style-name=\\\"ListLabel_20_12\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"0.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"4\\\" text:style-name=\\\"ListLabel_20_13\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"5\\\" text:style-name=\\\"ListLabel_20_14\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1.25in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"6\\\" text:style-name=\\\"ListLabel_20_15\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"7\\\" text:style-name=\\\"ListLabel_20_16\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"8\\\" text:style-name=\\\"ListLabel_20_17\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"2in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"9\\\" text:style-name=\\\"ListLabel_20_18\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"2.25in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-number text:level=\\\"10\\\" loext:num-list-format=\\\"%10%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"2.75in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"2.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n </text:list-style>\\n <text:list-style style:name=\\\"WWNum3\\\">\\n <text:list-level-style-number text:level=\\\"1\\\" text:style-name=\\\"ListLabel_20_19\\\"\\n loext:num-list-format=\\\"%1%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"0.25in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"2\\\" text:style-name=\\\"ListLabel_20_20\\\"\\n loext:num-list-format=\\\"%2%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"0.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"3\\\" text:style-name=\\\"ListLabel_20_21\\\"\\n loext:num-list-format=\\\"%3%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"0.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"4\\\" text:style-name=\\\"ListLabel_20_22\\\"\\n loext:num-list-format=\\\"%4%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"5\\\" text:style-name=\\\"ListLabel_20_23\\\"\\n loext:num-list-format=\\\"%5%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1.25in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"6\\\" text:style-name=\\\"ListLabel_20_24\\\"\\n loext:num-list-format=\\\"%6%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"7\\\" text:style-name=\\\"ListLabel_20_25\\\"\\n loext:num-list-format=\\\"%7%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"8\\\" text:style-name=\\\"ListLabel_20_26\\\"\\n loext:num-list-format=\\\"%8%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"2in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"9\\\" text:style-name=\\\"ListLabel_20_27\\\"\\n loext:num-list-format=\\\"%9%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"2.25in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"10\\\" loext:num-list-format=\\\"%10%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"2.75in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"2.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n </text:list-style>\\n <text:notes-configuration text:note-class=\\\"footnote\\\" style:num-format=\\\"1\\\"\\n text:start-value=\\\"0\\\" text:footnotes-position=\\\"page\\\" text:start-numbering-at=\\\"document\\\" />\\n <text:notes-configuration text:note-class=\\\"endnote\\\" style:num-format=\\\"i\\\"\\n text:start-value=\\\"0\\\" />\\n <text:linenumbering-configuration text:number-lines=\\\"false\\\" text:offset=\\\"0.1965in\\\"\\n style:num-format=\\\"1\\\" text:number-position=\\\"left\\\" text:increment=\\\"5\\\" />\\n <style:default-page-layout>\\n <style:page-layout-properties style:layout-grid-standard-mode=\\\"true\\\" />\\n </style:default-page-layout>\\n <loext:theme loext:name=\\\"Office\\\">\\n <loext:theme-colors loext:name=\\\"LibreOffice\\\">\\n <loext:color loext:name=\\\"dark1\\\" loext:color=\\\"#000000\\\" />\\n <loext:color loext:name=\\\"light1\\\" loext:color=\\\"#ffffff\\\" />\\n <loext:color loext:name=\\\"dark2\\\" loext:color=\\\"#000000\\\" />\\n <loext:color loext:name=\\\"light2\\\" loext:color=\\\"#ffffff\\\" />\\n <loext:color loext:name=\\\"accent1\\\" loext:color=\\\"#18a303\\\" />\\n <loext:color loext:name=\\\"accent2\\\" loext:color=\\\"#0369a3\\\" />\\n <loext:color loext:name=\\\"accent3\\\" loext:color=\\\"#a33e03\\\" />\\n <loext:color loext:name=\\\"accent4\\\" loext:color=\\\"#8e03a3\\\" />\\n <loext:color loext:name=\\\"accent5\\\" loext:color=\\\"#c99c00\\\" />\\n <loext:color loext:name=\\\"accent6\\\" loext:color=\\\"#c9211e\\\" />\\n <loext:color loext:name=\\\"hyperlink\\\" loext:color=\\\"#0000ee\\\" />\\n <loext:color loext:name=\\\"followed-hyperlink\\\" loext:color=\\\"#551a8b\\\" />\\n </loext:theme-colors>\\n </loext:theme>\\n </office:styles>\\n <office:automatic-styles>\\n <style:style style:name=\\\"MP1\\\" style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Header\\\">\\n <style:text-properties officeooo:rsid=\\\"0008951b\\\" officeooo:paragraph-rsid=\\\"0008951b\\\" />\\n </style:style>\\n <style:style style:name=\\\"MP2\\\" style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Footer\\\">\\n <style:text-properties officeooo:rsid=\\\"0008951b\\\" officeooo:paragraph-rsid=\\\"0008951b\\\" />\\n </style:style>\\n <style:page-layout style:name=\\\"Mpm1\\\">\\n <style:page-layout-properties fo:page-width=\\\"8.2681in\\\" fo:page-height=\\\"11.6929in\\\"\\n style:num-format=\\\"1\\\" style:print-orientation=\\\"portrait\\\" fo:margin-top=\\\"1in\\\"\\n fo:margin-bottom=\\\"1in\\\" fo:margin-left=\\\"1in\\\" fo:margin-right=\\\"1in\\\"\\n style:writing-mode=\\\"lr-tb\\\" style:layout-grid-color=\\\"#c0c0c0\\\"\\n style:layout-grid-lines=\\\"38\\\" style:layout-grid-base-height=\\\"0.25in\\\"\\n style:layout-grid-ruby-height=\\\"0in\\\" style:layout-grid-mode=\\\"none\\\"\\n style:layout-grid-ruby-below=\\\"false\\\" style:layout-grid-print=\\\"false\\\"\\n style:layout-grid-display=\\\"false\\\" style:layout-grid-base-width=\\\"0.1665in\\\"\\n style:layout-grid-snap-to=\\\"true\\\" style:footnote-max-height=\\\"0in\\\"\\n loext:margin-gutter=\\\"0in\\\">\\n <style:footnote-sep style:width=\\\"0.0071in\\\" style:distance-before-sep=\\\"0.0398in\\\"\\n style:distance-after-sep=\\\"0.0398in\\\" style:line-style=\\\"solid\\\"\\n style:adjustment=\\\"left\\\" style:rel-width=\\\"25%\\\" style:color=\\\"#000000\\\" />\\n </style:page-layout-properties>\\n <style:header-style>\\n <style:header-footer-properties fo:min-height=\\\"0in\\\" fo:margin-bottom=\\\"0.1965in\\\"\\n fo:background-color=\\\"transparent\\\" />\\n </style:header-style>\\n <style:footer-style>\\n <style:header-footer-properties fo:min-height=\\\"0in\\\" fo:margin-top=\\\"0.1965in\\\"\\n fo:background-color=\\\"transparent\\\" />\\n </style:footer-style>\\n </style:page-layout>\\n <style:style style:name=\\\"Mdp1\\\" style:family=\\\"drawing-page\\\">\\n <style:drawing-page-properties draw:background-size=\\\"full\\\" />\\n </style:style>\\n </office:automatic-styles>\\n <office:master-styles>\\n <style:master-page style:name=\\\"Standard\\\" style:page-layout-name=\\\"Mpm1\\\"\\n draw:style-name=\\\"Mdp1\\\" />\\n </office:master-styles>\\n</office:document-styles>\"","import {\n Block,\n BlockNoteSchema,\n BlockSchema,\n COLORS_DEFAULT,\n Exporter,\n ExporterOptions,\n InlineContentSchema,\n StyleSchema,\n StyledText,\n} from \"@blocknote/core\";\nimport { loadFileBuffer } from \"@shared/util/fileUtil.js\";\nimport { getImageDimensions } from \"@shared/util/imageUtil.js\";\nimport { BlobReader, BlobWriter, TextReader, ZipWriter } from \"@zip.js/zip.js\";\nimport { renderToString } from \"react-dom/server\";\nimport stylesXml from \"./template/styles.xml?raw\";\n\nexport class ODTExporter<\n B extends BlockSchema,\n S extends StyleSchema,\n I extends InlineContentSchema,\n> extends Exporter<\n B,\n I,\n S,\n React.ReactNode,\n React.ReactNode,\n Record<string, string>,\n React.ReactNode\n> {\n // \"Styles\" to be added to the AutomaticStyles section of the ODT file\n // Keyed by the style name\n private automaticStyles: Map<string, React.ReactNode> = new Map();\n\n // \"Pictures\" to be added to the Pictures folder in the ODT file\n // Keyed by the original image URL\n private pictures = new Map<\n string,\n {\n file: Blob;\n fileName: string;\n height: number;\n width: number;\n }\n >();\n\n private styleCounter = 0;\n\n public readonly options: ExporterOptions;\n\n constructor(\n protected readonly schema: BlockNoteSchema<B, I, S>,\n mappings: Exporter<\n NoInfer<B>,\n NoInfer<I>,\n NoInfer<S>,\n React.ReactNode,\n React.ReactNode,\n Record<string, string>,\n React.ReactNode\n >[\"mappings\"],\n options?: Partial<ExporterOptions>,\n ) {\n const defaults = {\n colors: COLORS_DEFAULT,\n } satisfies Partial<ExporterOptions>;\n\n super(schema, mappings, { ...defaults, ...options });\n this.options = { ...defaults, ...options };\n }\n\n protected async loadFonts() {\n const interFont = await loadFileBuffer(\n await import(\"@shared/assets/fonts/inter/Inter_18pt-Regular.ttf\"),\n );\n const geistMonoFont = await loadFileBuffer(\n await import(\"@shared/assets/fonts/GeistMono-Regular.ttf\"),\n );\n\n return [\n {\n name: \"Inter 18pt\",\n fileName: \"Inter_18pt-Regular.ttf\",\n data: new Blob([interFont as ArrayBuffer], { type: \"font/ttf\" }),\n },\n {\n name: \"Geist Mono\",\n fileName: \"GeistMono-Regular.ttf\",\n data: new Blob([geistMonoFont as ArrayBuffer], { type: \"font/ttf\" }),\n },\n ];\n }\n\n public transformStyledText(styledText: StyledText<S>): React.ReactNode {\n const stylesArray = this.mapStyles(styledText.styles);\n const styles = Object.assign({}, ...stylesArray);\n\n if (Object.keys(styles).length === 0) {\n return styledText.text;\n }\n\n const styleName = `BN_T${++this.styleCounter}`;\n\n // Store the complete style element\n this.automaticStyles.set(\n styleName,\n <style:style style:name={styleName} style:family=\"text\">\n <style:text-properties {...styles} />\n </style:style>,\n );\n\n return <text:span text:style-name={styleName}>{styledText.text}</text:span>;\n }\n\n public async transformBlocks(\n blocks: Block<B, I, S>[],\n nestingLevel = 0,\n ): Promise<Awaited<React.ReactNode>[]> {\n const ret: Awaited<React.ReactNode>[] = [];\n let numberedListIndex = 0;\n\n for (const block of blocks) {\n if (block.type === \"numberedListItem\") {\n numberedListIndex++;\n } else {\n numberedListIndex = 0;\n }\n\n if ([\"columnList\", \"column\"].includes(block.type)) {\n const children = await this.transformBlocks(block.children, 0);\n const content = await this.mapBlock(\n block as any,\n 0,\n numberedListIndex,\n children,\n );\n\n ret.push(content);\n } else {\n const children = await this.transformBlocks(\n block.children,\n nestingLevel + 1,\n );\n const content = await this.mapBlock(\n block as any,\n nestingLevel,\n numberedListIndex,\n children,\n );\n\n ret.push(content);\n if (children.length > 0) {\n ret.push(...children);\n }\n }\n }\n\n return ret;\n }\n\n public async toODTDocument(\n blocks: Block<B, I, S>[],\n options?: {\n header?: string | XMLDocument;\n footer?: string | XMLDocument;\n },\n ): Promise<Blob> {\n const xmlOptionToString = (xmlDocument: string | XMLDocument) => {\n const xmlNamespacesRegEx =\n /<([a-zA-Z0-9:]+)\\s+?(?:xml)ns(?::[a-zA-Z0-9]+)?=\".*\"(.*)>/g;\n let stringifiedDoc = \"\";\n\n if (typeof xmlDocument === \"string\") {\n stringifiedDoc = xmlDocument;\n } else {\n const serializer = new XMLSerializer();\n\n stringifiedDoc = serializer.serializeToString(xmlDocument);\n }\n\n // Detect and remove XML namespaces (already defined in the root element)\n return stringifiedDoc.replace(xmlNamespacesRegEx, \"<$1$2>\");\n };\n const blockContent = await this.transformBlocks(blocks);\n const styles = Array.from(this.automaticStyles.values());\n const pictures = Array.from(this.pictures.values());\n const fonts = await this.loadFonts();\n const header = xmlOptionToString(options?.header || \"\");\n const footer = xmlOptionToString(options?.footer || \"\");\n\n const content = (\n <office:document-content\n xmlns:office=\"urn:oasis:names:tc:opendocument:xmlns:office:1.0\"\n xmlns:text=\"urn:oasis:names:tc:opendocument:xmlns:text:1.0\"\n xmlns:table=\"urn:oasis:names:tc:opendocument:xmlns:table:1.0\"\n xmlns:draw=\"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n xmlns:style=\"urn:oasis:names:tc:opendocument:xmlns:style:1.0\"\n xmlns:fo=\"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\"\n xmlns:svg=\"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\"\n xmlns:loext=\"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\"\n office:version=\"1.3\"\n >\n <office:font-face-decls>\n {fonts.map((font) => {\n return (\n <style:font-face\n style:name={font.name}\n svg:font-family={font.name}\n style:font-pitch=\"variable\"\n >\n <svg:font-face-src>\n <svg:font-face-uri\n xlink:href={`Fonts/${font.fileName}`}\n xlink:type=\"simple\"\n loext:font-style=\"normal\"\n loext:font-weight=\"normal\"\n >\n <svg:font-face-format svg:string=\"truetype\" />\n </svg:font-face-uri>\n </svg:font-face-src>\n </style:font-face>\n );\n })}\n </office:font-face-decls>\n <office:automatic-styles>{styles}</office:automatic-styles>\n {(header || footer) && (\n <office:master-styles>\n <style:master-page\n style:name=\"Standard\"\n style:page-layout-name=\"Mpm1\"\n draw:style-name=\"Mdp1\"\n >\n {header && (\n <style:header\n dangerouslySetInnerHTML={{\n __html: header,\n }}\n ></style:header>\n )}\n {footer && (\n <style:footer\n dangerouslySetInnerHTML={{\n __html: footer,\n }}\n ></style:footer>\n )}\n </style:master-page>\n </office:master-styles>\n )}\n <office:body>\n <office:text>{blockContent}</office:text>\n </office:body>\n </office:document-content>\n );\n\n const manifestNode = (\n <manifest:manifest\n xmlns:manifest=\"urn:oasis:names:tc:opendocument:xmlns:manifest:1.0\"\n manifest:version=\"1.3\"\n >\n <manifest:file-entry\n manifest:media-type=\"application/vnd.oasis.opendocument.text\"\n manifest:full-path=\"/\"\n />\n <manifest:file-entry\n manifest:media-type=\"text/xml\"\n manifest:full-path=\"content.xml\"\n />\n <manifest:file-entry\n manifest:media-type=\"text/xml\"\n manifest:full-path=\"styles.xml\"\n />\n {pictures.map((picture) => {\n return (\n <manifest:file-entry\n manifest:media-type={picture.file.type}\n manifest:full-path={`Pictures/${picture.fileName}`}\n />\n );\n })}\n {fonts.map((font) => {\n return (\n <manifest:file-entry\n manifest:media-type=\"application/x-font-ttf\"\n manifest:full-path={`Fonts/${font.fileName}`}\n />\n );\n })}\n </manifest:manifest>\n );\n const zipWriter = new ZipWriter(\n new BlobWriter(\"application/vnd.oasis.opendocument.text\"),\n );\n\n // Add mimetype first, uncompressed\n zipWriter.add(\n \"mimetype\",\n new TextReader(\"application/vnd.oasis.opendocument.text\"),\n {\n compressionMethod: 0,\n level: 0,\n dataDescriptor: false,\n extendedTimestamp: false,\n },\n );\n\n const contentXml = renderToString(content);\n const manifestXml = renderToString(manifestNode);\n\n zipWriter.add(\"content.xml\", new TextReader(contentXml));\n zipWriter.add(\"styles.xml\", new TextReader(stylesXml));\n zipWriter.add(\"META-INF/manifest.xml\", new TextReader(manifestXml));\n fonts.forEach((font) => {\n zipWriter.add(`Fonts/${font.fileName}`, new BlobReader(font.data));\n });\n pictures.forEach((picture) => {\n zipWriter.add(\n `Pictures/${picture.fileName}`,\n new BlobReader(picture.file),\n );\n });\n\n return zipWriter.close();\n }\n\n public registerStyle(style: (name: string) => React.ReactNode): string {\n const styleName = `BN_S${++this.styleCounter}`;\n this.automaticStyles.set(styleName, style(styleName));\n return styleName;\n }\n\n public async registerPicture(url: string): Promise<{\n path: string;\n mimeType: string;\n height: number;\n width: number;\n }> {\n const mimeTypeFileExtensionMap = {\n \"image/apng\": \"apng\",\n \"image/avif\": \"avif\",\n \"image/bmp\": \"bmp\",\n \"image/gif\": \"gif\",\n \"image/vnd.microsoft.icon\": \"ico\",\n \"image/jpeg\": \"jpg\",\n \"image/png\": \"png\",\n \"image/svg+xml\": \"svg\",\n \"image/tiff\": \"tiff\",\n \"image/webp\": \"webp\",\n };\n if (this.pictures.has(url)) {\n const picture = this.pictures.get(url)!;\n\n return {\n path: `Pictures/${picture.fileName}`,\n mimeType: picture.file.type,\n height: picture.height,\n width: picture.width,\n };\n }\n\n const blob = await this.resolveFile(url);\n const fileExtension =\n mimeTypeFileExtensionMap[\n blob.type as keyof typeof mimeTypeFileExtensionMap\n ] || \"png\";\n const fileName = `picture-${this.pictures.size}.${fileExtension}`;\n const { width, height } = await getImageDimensions(blob);\n\n this.pictures.set(url, {\n file: blob,\n fileName: fileName,\n height,\n width,\n });\n\n return { path: `Pictures/${fileName}`, mimeType: blob.type, height, width };\n }\n}\n"],"names":["getTabs","nestingLevel","jsx","createParagraphStyle","exporter","props","parentStyleName","styleAttributes","paragraphStyleAttributes","textStyleAttributes","paragraphStyles","textStyles","alignmentMap","backgroundColor","_a","color","_b","name","jsxs","createTableCellStyle","cellStyleCache","cell","key","styleName","_c","createTableStyle","options","wrapWithLists","content","level","odtBlockMappingForDefaultSchema","block","numberedListIndex","continueNumbering","_block","_nestingLevel","_numberedListIndex","children","style","blockWithChildren","ex","column","index","odtExporter","path","mimeType","originalDimensions","width","height","captionHeight","imageFrame","tableWidthPT","totalWidth","colWidth","getCellStyleName","tableStyleName","_","i","colWidthPT","row","rowIndex","c","colIndex","mapTableCell","textContent","line","Fragment","odtInlineContentMappingForDefaultSchema","ic","odtStyleMappingForDefaultSchema","val","odtDefaultSchemaMappings","loadFileBuffer","requireUrl","dataUrl","getImageDimensions","blob","bmp","imageMetaFunc","bytes","meta","stylesXml","ODTExporter","Exporter","schema","mappings","defaults","COLORS_DEFAULT","__publicField","interFont","geistMonoFont","styledText","stylesArray","styles","blocks","ret","xmlOptionToString","xmlDocument","xmlNamespacesRegEx","stringifiedDoc","blockContent","pictures","fonts","header","footer","font","manifestNode","picture","zipWriter","ZipWriter","BlobWriter","TextReader","contentXml","renderToString","manifestXml","BlobReader","url","mimeTypeFileExtensionMap","fileExtension","fileName"],"mappings":"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AA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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"}
1
+ {"version":3,"file":"blocknote-xl-odt-exporter.js","names":[],"sources":["../src/odt/defaultSchema/blocks.tsx","../src/odt/defaultSchema/inlineContent.tsx","../src/odt/defaultSchema/styles.ts","../src/odt/defaultSchema/index.ts","../../../shared/util/fileUtil.ts","../../../shared/util/imageUtil.ts","../src/odt/template/styles.xml?raw","../src/odt/odtExporter.tsx"],"sourcesContent":["import {\n BlockFromConfig,\n BlockMapping,\n createPageBreakBlockConfig,\n DefaultBlockSchema,\n DefaultProps,\n mapTableCell,\n StyledText,\n TableCell,\n} from \"@blocknote/core\";\nimport { ODTExporter } from \"../odtExporter.js\";\nimport { multiColumnSchema } from \"@blocknote/xl-multi-column\";\n\nexport const getTabs = (nestingLevel: number) => {\n return Array.from({ length: nestingLevel }, () => <text:tab />);\n};\n\nconst createParagraphStyle = (\n exporter: ODTExporter<any, any, any>,\n props: Partial<DefaultProps>,\n parentStyleName = \"Standard\",\n styleAttributes: Record<string, string> = {},\n paragraphStyleAttributes: Record<string, string> = {},\n textStyleAttributes: Record<string, string> = {},\n) => {\n const paragraphStyles: Record<string, string> = {\n ...paragraphStyleAttributes,\n };\n const textStyles: Record<string, string> = { ...textStyleAttributes };\n\n if (props.textAlignment && props.textAlignment !== \"left\") {\n const alignmentMap = {\n left: \"start\",\n center: \"center\",\n right: \"end\",\n justify: \"justify\",\n };\n paragraphStyles[\"fo:text-align\"] =\n alignmentMap[props.textAlignment as keyof typeof alignmentMap];\n }\n\n const backgroundColor =\n props.backgroundColor && props.backgroundColor !== \"default\"\n ? exporter.options.colors[props.backgroundColor]?.background\n : undefined;\n\n if (backgroundColor) {\n paragraphStyles[\"fo:background-color\"] = backgroundColor;\n }\n\n if (props.textColor && props.textColor !== \"default\") {\n const color =\n exporter.options.colors[\n props.textColor as keyof typeof exporter.options.colors\n ]?.text ?? props.textColor;\n textStyles[\"fo:color\"] = color;\n }\n\n if (\n !backgroundColor &&\n !Object.keys(styleAttributes).length &&\n !Object.keys(paragraphStyles).length &&\n !Object.keys(textStyles).length\n ) {\n return parentStyleName || \"Standard\";\n }\n\n return exporter.registerStyle((name) => (\n <style:style\n style:family=\"paragraph\"\n style:name={name}\n style:parent-style-name={parentStyleName}\n {...styleAttributes}\n >\n {backgroundColor && (\n <loext:graphic-properties\n draw:fill=\"solid\"\n draw:fill-color={backgroundColor}\n />\n )}\n {Object.keys(paragraphStyles).length > 0 && (\n <style:paragraph-properties {...paragraphStyles} />\n )}\n {Object.keys(textStyles).length > 0 && (\n <style:text-properties {...textStyles}></style:text-properties>\n )}\n </style:style>\n ));\n};\n\nconst createTableCellStyle = (\n exporter: ODTExporter<any, any, any>,\n): ((cell: TableCell<any, any>) => string) => {\n // To not create a new style for each cell within a table, we cache the styles based on unique cell properties\n const cellStyleCache = new Map<string, string>();\n\n return (cell: TableCell<any, any>) => {\n const key = `${cell.props.backgroundColor}-${cell.props.textColor}-${cell.props.textAlignment}`;\n\n if (cellStyleCache.has(key)) {\n return cellStyleCache.get(key)!;\n }\n\n const styleName = exporter.registerStyle((name) => (\n <style:style style:family=\"table-cell\" style:name={name}>\n <style:table-cell-properties\n fo:border=\"0.5pt solid #000000\"\n style:writing-mode=\"lr-tb\"\n fo:padding-top=\"0in\"\n fo:padding-left=\"0.075in\"\n fo:padding-bottom=\"0in\"\n fo:padding-right=\"0.075in\"\n fo:background-color={\n cell.props.backgroundColor !== \"default\" &&\n cell.props.backgroundColor\n ? exporter.options.colors?.[cell.props.backgroundColor]\n ?.background\n : undefined\n }\n // TODO This is not applying because the children set their own colors\n fo:color={\n cell.props.textColor !== \"default\" && cell.props.textColor\n ? exporter.options.colors[cell.props.textColor]?.text\n : undefined\n }\n />\n </style:style>\n ));\n\n cellStyleCache.set(key, styleName);\n\n return styleName;\n };\n};\nconst createTableStyle = (\n exporter: ODTExporter<any, any, any>,\n options: { width: number },\n) => {\n const tableStyleName = exporter.registerStyle((name) => (\n <style:style style:family=\"table\" style:name={name}>\n <style:table-properties\n table:align=\"left\"\n style:writing-mode=\"lr-tb\"\n style:width={`${options.width}pt`}\n />\n </style:style>\n ));\n\n return tableStyleName;\n};\n\nconst wrapWithLists = (\n content: React.ReactNode,\n level: number,\n): React.ReactNode => {\n if (level <= 0) {\n return content;\n }\n return (\n <text:list>\n <text:list-item>{wrapWithLists(content, level - 1)}</text:list-item>\n </text:list>\n );\n};\n\nexport const odtBlockMappingForDefaultSchema: BlockMapping<\n DefaultBlockSchema & {\n pageBreak: ReturnType<typeof createPageBreakBlockConfig>;\n } & typeof multiColumnSchema.blockSchema,\n any,\n any,\n React.ReactNode,\n React.ReactNode\n> = {\n paragraph: (block, exporter, nestingLevel) => {\n const styleName = createParagraphStyle(\n exporter as ODTExporter<any, any, any>,\n block.props,\n );\n\n return (\n <text:p text:style-name={styleName}>\n {getTabs(nestingLevel)}\n {exporter.transformInlineContent(block.content)}\n </text:p>\n );\n },\n\n heading: (block, exporter, nestingLevel) => {\n const customStyleName = createParagraphStyle(\n exporter as ODTExporter<any, any, any>,\n block.props,\n \"Heading_20_\" + block.props.level,\n );\n const styleName = customStyleName;\n\n return (\n <text:h\n text:outline-level={`${block.props.level}`}\n text:style-name={styleName}\n >\n {getTabs(nestingLevel)}\n {exporter.transformInlineContent(block.content)}\n </text:h>\n );\n },\n\n quote: (block, exporter, nestingLevel) => {\n const customStyleName = createParagraphStyle(\n exporter as ODTExporter<any, any, any>,\n block.props,\n \"Standard\",\n {},\n {\n \"fo:border-left\": \"2pt solid #7D797A\",\n \"fo:padding-left\": \"0.25in\",\n },\n {\n \"fo:color\": \"#7D797A\",\n },\n );\n const styleName = customStyleName;\n\n return (\n <text:p text:style-name={styleName}>\n {getTabs(nestingLevel)}\n {exporter.transformInlineContent(block.content)}\n </text:p>\n );\n },\n\n /**\n * Note: we wrap each list item in it's own list element.\n * This is not the cleanest solution, it would be nicer to recognize subsequent\n * list items and wrap them in the same list element.\n *\n * However, Word DocX -> ODT export actually does the same thing, so\n * for now it seems reasonable.\n *\n * (LibreOffice does nicely wrap the list items in the same list element)\n */\n toggleListItem: (block, exporter) => (\n <text:p text:style-name=\"Standard\">\n {\"> \"}\n {exporter.transformInlineContent(block.content)}\n </text:p>\n ),\n\n bulletListItem: (block, exporter, nestingLevel) => {\n const styleName = createParagraphStyle(\n exporter as ODTExporter<any, any, any>,\n block.props,\n \"Standard\",\n { \"style:list-style-name\": \"WWNum1\" },\n );\n return (\n <text:list text:style-name=\"WWNum1\">\n <text:list-item>\n {wrapWithLists(\n <text:p text:style-name={styleName}>\n {exporter.transformInlineContent(block.content)}\n </text:p>,\n nestingLevel,\n )}\n </text:list-item>\n </text:list>\n );\n },\n\n numberedListItem: (block, exporter, nestingLevel, numberedListIndex) => {\n const styleName = createParagraphStyle(\n exporter as ODTExporter<any, any, any>,\n block.props,\n );\n // continue numbering from the previous list item if this is not the first item\n const continueNumbering = (numberedListIndex || 0) > 1 ? \"true\" : \"false\";\n\n return (\n <text:list\n text:style-name=\"No_20_List\"\n text:continue-numbering={continueNumbering}\n >\n <text:list-item\n {...(continueNumbering === \"false\" && {\n \"text:start-value\": block.props.start,\n })}\n >\n {wrapWithLists(\n <text:p text:style-name={styleName}>\n {exporter.transformInlineContent(block.content)}\n </text:p>,\n nestingLevel,\n )}\n </text:list-item>\n </text:list>\n );\n },\n\n checkListItem: (block, exporter) => (\n <text:p text:style-name=\"Standard\">\n {block.props.checked ? \"☒ \" : \"☐ \"}\n {exporter.transformInlineContent(block.content)}\n </text:p>\n ),\n\n pageBreak: async () => {\n return <text:p text:style-name=\"PageBreak\" />;\n },\n\n divider: (block, exporter) => {\n const styleName = createParagraphStyle(\n exporter as ODTExporter<any, any, any>,\n block.props,\n \"Standard\",\n {},\n {\n \"fo:border-top\": \"1pt solid #cccccc\",\n \"fo:margin-top\": \"11pt\",\n \"fo:margin-bottom\": \"12pt\",\n \"fo:padding-top\": \"0pt\",\n \"fo:padding-bottom\": \"0pt\",\n },\n );\n\n return <text:p text:style-name={styleName} />;\n },\n\n column: (_block, exporter, _nestingLevel, _numberedListIndex, children) => {\n const ex = exporter as ODTExporter<any, any, any>;\n const style = ex.registerStyle((name) => (\n <style:style style:name={name} style:family=\"table-cell\">\n <style:table-cell-properties\n style:writing-mode=\"lr-tb\"\n fo:border=\"none\"\n fo:padding-top=\"0in\"\n fo:padding-left=\"0.075in\"\n fo:padding-bottom=\"0in\"\n fo:padding-right=\"0.075in\"\n />\n </style:style>\n ));\n\n return (\n <table:table-cell table:style-name={style}>{children}</table:table-cell>\n );\n },\n columnList: (\n block,\n exporter,\n _nestingLevel,\n _numberedListIndex,\n children,\n ) => {\n const blockWithChildren = block as BlockFromConfig<\n {\n type: \"columnList\";\n content: \"none\";\n propSchema: Record<string, any>;\n },\n any,\n any\n >;\n const ex = exporter as ODTExporter<any, any, any>;\n const style = ex.registerStyle((name) => (\n <style:style style:name={name} style:family=\"table\">\n <style:table-properties\n table:align=\"margins\"\n style:writing-mode=\"lr-tb\"\n />\n </style:style>\n ));\n\n return (\n <table:table table:name={block.id} table:style-name={style}>\n {(blockWithChildren.children || []).map((column, index) => {\n const style = ex.registerStyle((name) => (\n <style:style style:name={name} style:family=\"table-column\">\n <style:table-column-properties\n style:rel-column-width={`${column.props.width * 100}*`}\n />\n </style:style>\n ));\n\n return <table:table-column table:style-name={style} key={index} />;\n })}\n <table:table-row>{children}</table:table-row>\n </table:table>\n );\n },\n\n image: async (block, exporter) => {\n const odtExporter = exporter as ODTExporter<any, any, any>;\n\n const { path, mimeType, ...originalDimensions } =\n await odtExporter.registerPicture(block.props.url);\n const styleName = createParagraphStyle(\n exporter as ODTExporter<any, any, any>,\n block.props,\n );\n const width = block.props.previewWidth || originalDimensions.width;\n const height =\n (originalDimensions.height / originalDimensions.width) * width;\n const captionHeight = 20;\n const imageFrame = (\n <text:p text:style-name={block.props.caption ? \"Caption\" : styleName}>\n <draw:frame\n draw:style-name=\"Frame\"\n style:rel-height=\"scale\"\n svg:width={`${width}px`}\n svg:height={`${height}px`}\n style:rel-width={block.props.caption ? \"100%\" : `${width}px`}\n {...(!block.props.caption && {\n \"text:anchor-type\": \"as-char\",\n })}\n >\n <draw:image\n xlink:type=\"simple\"\n xlink:show=\"embed\"\n xlink:actuate=\"onLoad\"\n xlink:href={path}\n draw:mime-type={mimeType}\n />\n </draw:frame>\n <text:line-break />\n <text:span text:style-name=\"Caption\">{block.props.caption}</text:span>\n </text:p>\n );\n\n if (block.props.caption) {\n return (\n <text:p text:style-name={styleName}>\n <draw:frame\n draw:style-name=\"Frame\"\n style:rel-height=\"scale\"\n style:rel-width={`${width}px`}\n svg:width={`${width}px`}\n svg:height={`${height + captionHeight}px`}\n text:anchor-type=\"as-char\"\n >\n <draw:text-box>{imageFrame}</draw:text-box>\n </draw:frame>\n </text:p>\n );\n }\n\n return imageFrame;\n },\n\n table: (block, exporter) => {\n const DEFAULT_COLUMN_WIDTH_PX = 120;\n const tableWidthPX =\n block.content.columnWidths.reduce(\n (totalWidth, colWidth) =>\n (totalWidth || 0) + (colWidth || DEFAULT_COLUMN_WIDTH_PX),\n 0,\n ) || 0;\n const tableWidthPT = tableWidthPX * 0.75;\n const ex = exporter as ODTExporter<any, any, any>;\n const getCellStyleName = createTableCellStyle(ex);\n const tableStyleName = createTableStyle(ex, { width: tableWidthPT });\n\n return (\n <table:table table:name={block.id} table:style-name={tableStyleName}>\n {block.content.rows[0]?.cells.map((_, i) => {\n const colWidthPX =\n block.content.columnWidths[i] || DEFAULT_COLUMN_WIDTH_PX;\n const colWidthPT = colWidthPX * 0.75;\n const style = ex.registerStyle((name) => (\n <style:style style:name={name} style:family=\"table-column\">\n <style:table-column-properties\n style:column-width={`${colWidthPT}pt`}\n />\n </style:style>\n ));\n return <table:table-column table:style-name={style} key={i} />;\n })}\n {block.content.rows.map((row, rowIndex) => (\n <table:table-row key={rowIndex}>\n {row.cells.map((c, colIndex) => {\n const cell = mapTableCell(c);\n return (\n <table:table-cell\n key={`${rowIndex}-${colIndex}`}\n table:style-name={getCellStyleName(cell)}\n office:value-type=\"string\"\n style:text-align-source=\"fix\"\n style:paragraph-properties-text-align={\n cell.props.textAlignment\n }\n >\n <text:p text:style-name=\"Standard\">\n {exporter.transformInlineContent(cell.content)}\n </text:p>\n </table:table-cell>\n );\n })}\n </table:table-row>\n ))}\n </table:table>\n );\n },\n\n codeBlock: (block) => {\n const textContent = (block.content as StyledText<any>[])[0]?.text || \"\";\n\n return (\n <text:p text:style-name=\"Codeblock\">\n {...textContent.split(\"\\n\").map((line, index) => {\n return (\n <>\n {index !== 0 && <text:line-break />}\n {line}\n </>\n );\n })}\n </text:p>\n );\n },\n\n file: async (block) => {\n return (\n <>\n <text:p style:style-name=\"Standard\">\n {block.props.url ? (\n <text:a\n xlink:type=\"simple\"\n text:style-name=\"Internet_20_link\"\n office:target-frame-name=\"_top\"\n xlink:show=\"replace\"\n xlink:href={block.props.url}\n >\n <text:span text:style-name=\"Internet_20_link\">\n Open file\n </text:span>\n </text:a>\n ) : (\n \"Open file\"\n )}\n </text:p>\n {block.props.caption && (\n <text:p text:style-name=\"Caption\">{block.props.caption}</text:p>\n )}\n </>\n );\n },\n\n video: (block) => (\n <>\n <text:p style:style-name=\"Standard\">\n <text:a\n xlink:type=\"simple\"\n text:style-name=\"Internet_20_link\"\n office:target-frame-name=\"_top\"\n xlink:show=\"replace\"\n xlink:href={block.props.url}\n >\n <text:span text:style-name=\"Internet_20_link\">Open video</text:span>\n </text:a>\n </text:p>\n {block.props.caption && (\n <text:p text:style-name=\"Caption\">{block.props.caption}</text:p>\n )}\n </>\n ),\n\n audio: (block) => (\n <>\n <text:p style:style-name=\"Standard\">\n <text:a\n xlink:type=\"simple\"\n text:style-name=\"Internet_20_link\"\n office:target-frame-name=\"_top\"\n xlink:show=\"replace\"\n xlink:href={block.props.url}\n >\n <text:span text:style-name=\"Internet_20_link\">Open audio</text:span>\n </text:a>\n </text:p>\n {block.props.caption && (\n <text:p text:style-name=\"Caption\">{block.props.caption}</text:p>\n )}\n </>\n ),\n};\n","import {\n DefaultInlineContentSchema,\n InlineContentMapping,\n} from \"@blocknote/core\";\n\nexport const odtInlineContentMappingForDefaultSchema: InlineContentMapping<\n DefaultInlineContentSchema,\n any,\n React.JSX.Element,\n React.JSX.Element\n> = {\n link: (ic, exporter) => {\n const content = ic.content.map((c) => exporter.transformStyledText(c));\n\n return (\n <text:a\n xlink:type=\"simple\"\n text:style-name=\"Internet_20_link\"\n office:target-frame-name=\"_top\"\n xlink:show=\"replace\"\n xlink:href={ic.href}\n >\n {content}\n </text:a>\n );\n },\n\n text: (ic, exporter) => {\n return exporter.transformStyledText(ic);\n },\n};\n","import { DefaultStyleSchema, StyleMapping } from \"@blocknote/core\";\nexport const odtStyleMappingForDefaultSchema: StyleMapping<\n DefaultStyleSchema,\n Record<string, string>\n> = {\n bold: (val): Record<string, string> => {\n if (!val) {\n return {};\n }\n return { \"fo:font-weight\": \"bold\" };\n },\n\n italic: (val): Record<string, string> => {\n if (!val) {\n return {};\n }\n return { \"fo:font-style\": \"italic\" };\n },\n\n underline: (val): Record<string, string> => {\n if (!val) {\n return {};\n }\n return { \"style:text-underline-style\": \"solid\" };\n },\n\n strike: (val): Record<string, string> => {\n if (!val) {\n return {};\n }\n return { \"style:text-line-through-style\": \"solid\" };\n },\n\n textColor: (val, exporter): Record<string, string> => {\n if (!val) {\n return {};\n }\n const color = exporter.options.colors[val]?.text;\n if (!color) {\n return {};\n }\n return { \"fo:color\": color };\n },\n\n backgroundColor: (val, exporter): Record<string, string> => {\n if (!val) {\n return {};\n }\n const color = exporter.options.colors[val]?.background;\n if (!color) {\n return {};\n }\n return { \"fo:background-color\": color };\n },\n\n code: (val): Record<string, string> => {\n if (!val) {\n return {};\n }\n return { \"style:font-name\": \"Courier New\" };\n },\n};\n","import { odtBlockMappingForDefaultSchema } from \"./blocks.js\";\nimport { odtInlineContentMappingForDefaultSchema } from \"./inlineContent.js\";\nimport { odtStyleMappingForDefaultSchema } from \"./styles.js\";\n\nexport const odtDefaultSchemaMappings = {\n blockMapping: odtBlockMappingForDefaultSchema,\n inlineContentMapping: odtInlineContentMappingForDefaultSchema,\n styleMapping: odtStyleMappingForDefaultSchema,\n};\n","/**\n *\n * Helper functions so that we can import files both on vitest, browser and node\n * TODO: should find a way to test automatically in all environments\n */\n\nexport async function loadFileDataUrl(\n requireUrl: { default: string },\n mimeType: string,\n) {\n if (import.meta.env.NODE_ENV === \"test\") {\n const buffer = await loadFileBuffer(requireUrl);\n const fileBase64 = buffer.toString(\"base64\");\n\n const dataUrl = `data:${mimeType};base64,${fileBase64}`;\n return dataUrl;\n } else {\n // in browser, this is already a data url\n return requireUrl.default as string;\n }\n}\n\nexport async function loadFontDataUrl(requireUrl: { default: string }) {\n return loadFileDataUrl(requireUrl, \"font/ttf\");\n}\n\nexport async function loadFileBuffer(requireUrl: {\n default: string;\n}): Promise<Buffer | ArrayBuffer> {\n if (import.meta.env.NODE_ENV === \"test\") {\n // in vitest, this is the url we need to load with readfilesync\n // eslint-disable-next-line\n const fs = require(\"fs\");\n let url = requireUrl.default;\n\n if (url.startsWith(\"/@fs/\")) {\n url = url.substring(\"/@fs\".length);\n }\n // On Windows, vite/vitest may yield paths like \"/C:/...\" after removing /@fs\n // Node on Windows treats paths starting with \"/\" as relative to current drive,\n // which would produce \"C:\\C:\\...\". Strip leading slash when followed by a drive letter.\n if (/^\\/[A-Za-z]:/.test(url)) {\n url = url.slice(1);\n }\n const buffer = fs.readFileSync(url);\n return buffer;\n } else {\n // in browser, this is already a data url\n const dataUrl = requireUrl.default as string;\n // convert to buffer on browser\n const response = await fetch(dataUrl);\n const arrayBuffer = await response.arrayBuffer();\n return arrayBuffer;\n }\n}\n\n/**\n * usage:\n * \n * await loadFontDataUrl(\n await import(\"../fonts/inter/Inter_18pt-Italic.ttf\")\n );\n */\n","export async function getImageDimensions(blob: Blob) {\n if (typeof window !== \"undefined\" && import.meta.env.NODE_ENV !== \"test\") {\n const bmp = await createImageBitmap(blob);\n const { width, height } = bmp;\n bmp.close(); // free memory\n return { width, height };\n } else {\n // node or vitest\n const imageMetaFunc = (await import(\"image-meta\")).imageMeta;\n const bytes = new Uint8Array(await blob.arrayBuffer());\n const meta = imageMetaFunc(bytes);\n if (!meta.width || !meta.height) {\n throw new Error(\"Image dimensions not found\");\n }\n return { width: meta.width, height: meta.height };\n }\n}\n","export default \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?>\\n<office:document-styles xmlns:css3t=\\\"http://www.w3.org/TR/css3-text/\\\"\\n xmlns:grddl=\\\"http://www.w3.org/2003/g/data-view#\\\" xmlns:xhtml=\\\"http://www.w3.org/1999/xhtml\\\"\\n xmlns:dom=\\\"http://www.w3.org/2001/xml-events\\\"\\n xmlns:script=\\\"urn:oasis:names:tc:opendocument:xmlns:script:1.0\\\"\\n xmlns:form=\\\"urn:oasis:names:tc:opendocument:xmlns:form:1.0\\\"\\n xmlns:math=\\\"http://www.w3.org/1998/Math/MathML\\\"\\n xmlns:number=\\\"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\\\"\\n xmlns:field=\\\"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0\\\"\\n xmlns:meta=\\\"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\\\"\\n xmlns:loext=\\\"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\\\"\\n xmlns:officeooo=\\\"http://openoffice.org/2009/office\\\"\\n xmlns:table=\\\"urn:oasis:names:tc:opendocument:xmlns:table:1.0\\\"\\n xmlns:chart=\\\"urn:oasis:names:tc:opendocument:xmlns:chart:1.0\\\"\\n xmlns:svg=\\\"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\\\"\\n xmlns:rpt=\\\"http://openoffice.org/2005/report\\\"\\n xmlns:dr3d=\\\"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\\\"\\n xmlns:tableooo=\\\"http://openoffice.org/2009/table\\\"\\n xmlns:draw=\\\"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\\\"\\n xmlns:of=\\\"urn:oasis:names:tc:opendocument:xmlns:of:1.2\\\"\\n xmlns:text=\\\"urn:oasis:names:tc:opendocument:xmlns:text:1.0\\\"\\n xmlns:style=\\\"urn:oasis:names:tc:opendocument:xmlns:style:1.0\\\"\\n xmlns:dc=\\\"http://purl.org/dc/elements/1.1/\\\"\\n xmlns:calcext=\\\"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0\\\"\\n xmlns:oooc=\\\"http://openoffice.org/2004/calc\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"\\n xmlns:drawooo=\\\"http://openoffice.org/2010/draw\\\" xmlns:ooow=\\\"http://openoffice.org/2004/writer\\\"\\n xmlns:fo=\\\"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\\\"\\n xmlns:ooo=\\\"http://openoffice.org/2004/office\\\"\\n xmlns:office=\\\"urn:oasis:names:tc:opendocument:xmlns:office:1.0\\\" office:version=\\\"1.3\\\">\\n <office:font-face-decls>\\n <style:font-face style:name=\\\"Geist Mono\\\" svg:font-family=\\\"Geist Mono\\\" />\\n <style:font-face style:name=\\\"Inter 18pt\\\" svg:font-family=\\\"Inter 18pt\\\"\\n style:font-pitch=\\\"variable\\\" />\\n <style:font-face style:name=\\\"Liberation Serif\\\"\\n svg:font-family=\\\"&apos;Liberation Serif&apos;\\\" style:font-family-generic=\\\"roman\\\"\\n style:font-pitch=\\\"variable\\\" />\\n <style:font-face style:name=\\\"OpenSymbol\\\" svg:font-family=\\\"OpenSymbol\\\"\\n style:font-charset=\\\"x-symbol\\\" />\\n <style:font-face style:name=\\\"PingFang SC\\\" svg:font-family=\\\"&apos;PingFang SC&apos;\\\"\\n style:font-family-generic=\\\"system\\\" style:font-pitch=\\\"variable\\\" />\\n <style:font-face style:name=\\\"Tahoma\\\" svg:font-family=\\\"Tahoma\\\"\\n style:font-family-generic=\\\"system\\\" style:font-pitch=\\\"variable\\\" />\\n <style:font-face style:name=\\\"Times New Roman (Body CS)\\\"\\n svg:font-family=\\\"&apos;Times New Roman (Body CS)&apos;\\\"\\n style:font-family-generic=\\\"system\\\" style:font-pitch=\\\"variable\\\" />\\n </office:font-face-decls>\\n <office:styles>\\n <draw:gradient draw:name=\\\"Gradient_20_1\\\" draw:display-name=\\\"Gradient 1\\\" draw:style=\\\"linear\\\"\\n draw:start-color=\\\"#000000\\\" draw:end-color=\\\"#ffffff\\\" draw:start-intensity=\\\"100%\\\"\\n draw:end-intensity=\\\"100%\\\" draw:angle=\\\"0deg\\\" draw:border=\\\"0%\\\">\\n <loext:gradient-stop svg:offset=\\\"0\\\" loext:color-type=\\\"rgb\\\" loext:color-value=\\\"#000000\\\" />\\n <loext:gradient-stop svg:offset=\\\"1\\\" loext:color-type=\\\"rgb\\\" loext:color-value=\\\"#ffffff\\\" />\\n </draw:gradient>\\n <draw:hatch draw:name=\\\"Red_20_90_20_Degrees_20_Crossed_20_1\\\"\\n draw:display-name=\\\"Red 90 Degrees Crossed 1\\\" draw:style=\\\"single\\\" draw:color=\\\"#3465a4\\\"\\n draw:distance=\\\"0.0079in\\\" draw:rotation=\\\"0\\\" />\\n <style:default-style style:family=\\\"graphic\\\">\\n <style:graphic-properties svg:stroke-color=\\\"#3465a4\\\" draw:fill-color=\\\"#729fcf\\\"\\n fo:wrap-option=\\\"no-wrap\\\" draw:shadow-offset-x=\\\"0.1181in\\\"\\n draw:shadow-offset-y=\\\"0.1181in\\\" draw:start-line-spacing-horizontal=\\\"0.1114in\\\"\\n draw:start-line-spacing-vertical=\\\"0.1114in\\\"\\n draw:end-line-spacing-horizontal=\\\"0.1114in\\\"\\n draw:end-line-spacing-vertical=\\\"0.1114in\\\" style:flow-with-text=\\\"false\\\" />\\n <style:paragraph-properties style:text-autospace=\\\"ideograph-alpha\\\"\\n style:line-break=\\\"strict\\\" loext:tab-stop-distance=\\\"0in\\\" style:writing-mode=\\\"lr-tb\\\"\\n style:font-independent-line-spacing=\\\"false\\\">\\n <style:tab-stops />\\n </style:paragraph-properties>\\n <style:text-properties style:font-name=\\\"Inter 18pt\\\"\\n fo:font-family=\\\"Inter 18pt\\\" style:font-style-name=\\\"Regular\\\"\\n style:font-pitch=\\\"variable\\\" style:font-name-complex=\\\"Times New Roman (Body CS)\\\"\\n style:font-family-complex=\\\"&apos;Times New Roman (Body CS)&apos;\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\"\\n style:use-window-font-color=\\\"true\\\" loext:opacity=\\\"0%\\\"\\n fo:font-size=\\\"12pt\\\" fo:language=\\\"en\\\" fo:country=\\\"NL\\\"\\n style:letter-kerning=\\\"true\\\" style:font-size-asian=\\\"12pt\\\"\\n style:language-asian=\\\"en\\\" style:country-asian=\\\"GB\\\"\\n style:font-size-complex=\\\"12pt\\\" style:language-complex=\\\"ar\\\"\\n style:country-complex=\\\"SA\\\" />\\n </style:default-style>\\n <style:default-style style:family=\\\"paragraph\\\">\\n <style:paragraph-properties fo:hyphenation-ladder-count=\\\"no-limit\\\"\\n fo:hyphenation-keep=\\\"auto\\\" loext:hyphenation-keep-type=\\\"column\\\"\\n style:text-autospace=\\\"ideograph-alpha\\\" style:punctuation-wrap=\\\"hanging\\\"\\n style:line-break=\\\"strict\\\" style:tab-stop-distance=\\\"0.139in\\\"\\n style:writing-mode=\\\"page\\\" />\\n <style:text-properties style:font-name=\\\"Inter 18pt\\\"\\n fo:font-family=\\\"Inter 18pt\\\" style:font-style-name=\\\"Regular\\\"\\n style:font-pitch=\\\"variable\\\" style:font-name-complex=\\\"Times New Roman (Body CS)\\\"\\n style:font-family-complex=\\\"&apos;Times New Roman (Body CS)&apos;\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\"\\n style:use-window-font-color=\\\"true\\\" loext:opacity=\\\"0%\\\"\\n fo:font-size=\\\"12pt\\\" fo:language=\\\"en\\\" fo:country=\\\"NL\\\"\\n style:letter-kerning=\\\"true\\\" style:font-size-asian=\\\"12pt\\\"\\n style:language-asian=\\\"en\\\" style:country-asian=\\\"GB\\\"\\n style:font-size-complex=\\\"12pt\\\" style:language-complex=\\\"ar\\\"\\n style:country-complex=\\\"SA\\\" fo:hyphenate=\\\"false\\\" fo:hyphenation-remain-char-count=\\\"2\\\"\\n fo:hyphenation-push-char-count=\\\"2\\\" loext:hyphenation-no-caps=\\\"false\\\"\\n loext:hyphenation-no-last-word=\\\"false\\\" loext:hyphenation-word-char-count=\\\"5\\\"\\n loext:hyphenation-zone=\\\"no-limit\\\" />\\n </style:default-style>\\n <style:default-style style:family=\\\"table\\\">\\n <style:table-properties table:border-model=\\\"collapsing\\\" />\\n </style:default-style>\\n <style:default-style style:family=\\\"table-row\\\">\\n <style:table-row-properties fo:keep-together=\\\"auto\\\" />\\n </style:default-style>\\n <style:style style:name=\\\"Standard\\\" style:family=\\\"paragraph\\\" style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.0311in\\\" fo:margin-bottom=\\\"0.0311in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:line-height=\\\"150%\\\" fo:text-align=\\\"start\\\"\\n style:justify-single-word=\\\"false\\\" fo:orphans=\\\"2\\\" fo:widows=\\\"2\\\"\\n style:writing-mode=\\\"lr-tb\\\" />\\n <style:text-properties style:font-name=\\\"Inter 18pt\\\"\\n fo:font-family=\\\"Inter 18pt\\\" style:font-style-name=\\\"Regular\\\"\\n style:font-pitch=\\\"variable\\\" style:font-name-complex=\\\"Times New Roman (Body CS)\\\"\\n style:font-family-complex=\\\"&apos;Times New Roman (Body CS)&apos;\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\" />\\n </style:style>\\n <style:style style:name=\\\"Heading\\\" style:family=\\\"paragraph\\\"\\n style:parent-style-name=\\\"Standard\\\" style:next-style-name=\\\"Text_20_body\\\"\\n style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.1665in\\\" fo:margin-bottom=\\\"0.0835in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:keep-with-next=\\\"always\\\" />\\n <style:text-properties style:font-family-generic=\\\"swiss\\\"\\n style:font-pitch=\\\"variable\\\" fo:font-size=\\\"14pt\\\" style:font-name-asian=\\\"PingFang SC\\\"\\n style:font-family-asian=\\\"&apos;PingFang SC&apos;\\\"\\n style:font-family-generic-asian=\\\"system\\\" style:font-pitch-asian=\\\"variable\\\"\\n style:font-size-asian=\\\"14pt\\\" style:font-name-complex=\\\"Arial Unicode MS1\\\"\\n style:font-family-complex=\\\"&apos;Arial Unicode MS&apos;\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\"\\n style:font-size-complex=\\\"14pt\\\" />\\n </style:style>\\n <style:style style:name=\\\"Text_20_body\\\" style:display-name=\\\"Text body\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\" style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0in\\\" fo:margin-bottom=\\\"0.0972in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:line-height=\\\"115%\\\" />\\n </style:style>\\n <style:style style:name=\\\"List\\\" style:family=\\\"paragraph\\\"\\n style:parent-style-name=\\\"Text_20_body\\\" style:class=\\\"list\\\">\\n <style:text-properties style:font-size-asian=\\\"12pt\\\"\\n style:font-name-complex=\\\"Arial Unicode MS\\\"\\n style:font-family-complex=\\\"&apos;Arial Unicode MS&apos;\\\"\\n style:font-family-generic-complex=\\\"swiss\\\" />\\n </style:style>\\n <style:style style:name=\\\"Caption\\\" style:family=\\\"paragraph\\\"\\n style:parent-style-name=\\\"Standard\\\" style:next-style-name=\\\"Standard\\\" style:class=\\\"extra\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0in\\\" fo:margin-bottom=\\\"0.139in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:line-height=\\\"100%\\\" />\\n <style:text-properties fo:color=\\\"#0e2841\\\" loext:opacity=\\\"100%\\\" fo:font-size=\\\"9pt\\\"\\n fo:font-style=\\\"italic\\\" style:font-size-asian=\\\"9pt\\\" style:font-style-asian=\\\"italic\\\"\\n style:font-size-complex=\\\"9pt\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark2\\\" loext:color-type=\\\"theme\\\" />\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Index\\\" style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:class=\\\"index\\\">\\n <style:paragraph-properties text:number-lines=\\\"false\\\" text:line-number=\\\"0\\\" />\\n <style:text-properties style:font-size-asian=\\\"12pt\\\"\\n style:font-name-complex=\\\"Arial Unicode MS\\\"\\n style:font-family-complex=\\\"&apos;Arial Unicode MS&apos;\\\"\\n style:font-family-generic-complex=\\\"swiss\\\" />\\n </style:style>\\n <style:style style:name=\\\"Heading_20_1\\\" style:display-name=\\\"Heading 1\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_1_20_Char\\\"\\n style:default-outline-level=\\\"1\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:text-properties fo:font-size=\\\"24pt\\\" fo:font-weight=\\\"bold\\\"\\n style:font-size-asian=\\\"24pt\\\" style:font-weight-asian=\\\"bold\\\"\\n style:font-size-complex=\\\"24pt\\\" />\\n </style:style>\\n <style:style style:name=\\\"Heading_20_2\\\" style:display-name=\\\"Heading 2\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_2_20_Char\\\"\\n style:default-outline-level=\\\"2\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:text-properties fo:font-size=\\\"18pt\\\" fo:font-weight=\\\"bold\\\"\\n style:font-size-asian=\\\"18pt\\\" style:font-weight-asian=\\\"bold\\\"\\n style:font-size-complex=\\\"18pt\\\" />\\n </style:style>\\n <style:style style:name=\\\"Heading_20_3\\\" style:display-name=\\\"Heading 3\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_3_20_Char\\\"\\n style:default-outline-level=\\\"3\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:text-properties fo:font-size=\\\"14pt\\\" fo:font-weight=\\\"bold\\\"\\n style:font-size-asian=\\\"14pt\\\" style:font-weight-asian=\\\"bold\\\"\\n style:font-size-complex=\\\"14pt\\\" />\\n </style:style>\\n <style:style style:name=\\\"Heading_20_4\\\" style:display-name=\\\"Heading 4\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_4_20_Char\\\"\\n style:default-outline-level=\\\"4\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.0555in\\\" fo:margin-bottom=\\\"0.028in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:keep-together=\\\"always\\\"\\n fo:keep-with-next=\\\"always\\\" />\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-style-asian=\\\"italic\\\"\\n style:font-name-complex=\\\"F2\\\" style:font-family-generic-complex=\\\"system\\\"\\n style:font-pitch-complex=\\\"variable\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_5\\\" style:display-name=\\\"Heading 5\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_5_20_Char\\\"\\n style:default-outline-level=\\\"5\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.0555in\\\" fo:margin-bottom=\\\"0.028in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:keep-together=\\\"always\\\"\\n fo:keep-with-next=\\\"always\\\" />\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-name-complex=\\\"F2\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_6\\\" style:display-name=\\\"Heading 6\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_6_20_Char\\\"\\n style:default-outline-level=\\\"6\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.028in\\\" fo:margin-bottom=\\\"0in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:keep-together=\\\"always\\\"\\n fo:keep-with-next=\\\"always\\\" />\\n <style:text-properties fo:color=\\\"#595959\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-style-asian=\\\"italic\\\"\\n style:font-name-complex=\\\"F2\\\" style:font-family-generic-complex=\\\"system\\\"\\n style:font-pitch-complex=\\\"variable\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"3490\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_7\\\" style:display-name=\\\"Heading 7\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_7_20_Char\\\"\\n style:default-outline-level=\\\"7\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.028in\\\" fo:margin-bottom=\\\"0in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:keep-together=\\\"always\\\"\\n fo:keep-with-next=\\\"always\\\" />\\n <style:text-properties fo:color=\\\"#595959\\\" loext:opacity=\\\"100%\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-name-complex=\\\"F2\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"3490\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_8\\\" style:display-name=\\\"Heading 8\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_8_20_Char\\\"\\n style:default-outline-level=\\\"8\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.0311in\\\" fo:margin-bottom=\\\"0in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:keep-together=\\\"always\\\"\\n fo:keep-with-next=\\\"always\\\" />\\n <style:text-properties fo:color=\\\"#272727\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-style-asian=\\\"italic\\\"\\n style:font-name-complex=\\\"F2\\\" style:font-family-generic-complex=\\\"system\\\"\\n style:font-pitch-complex=\\\"variable\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"1529\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_9\\\" style:display-name=\\\"Heading 9\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_9_20_Char\\\"\\n style:default-outline-level=\\\"9\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.0311in\\\" fo:margin-bottom=\\\"0in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:keep-together=\\\"always\\\"\\n fo:keep-with-next=\\\"always\\\" />\\n <style:text-properties fo:color=\\\"#272727\\\" loext:opacity=\\\"100%\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-name-complex=\\\"F2\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"1529\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Title\\\" style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Title_20_Char\\\"\\n style:class=\\\"chapter\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.0311in\\\" fo:margin-bottom=\\\"0.0555in\\\"\\n style:contextual-spacing=\\\"true\\\" fo:line-height=\\\"100%\\\" />\\n <style:text-properties\\n fo:font-size=\\\"28pt\\\" fo:letter-spacing=\\\"-0.0071in\\\" style:letter-kerning=\\\"true\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-size-asian=\\\"28pt\\\"\\n style:font-name-complex=\\\"F2\\\" style:font-family-generic-complex=\\\"system\\\"\\n style:font-pitch-complex=\\\"variable\\\" style:font-size-complex=\\\"28pt\\\" />\\n </style:style>\\n <style:style style:name=\\\"Subtitle\\\" style:family=\\\"paragraph\\\"\\n style:parent-style-name=\\\"Standard\\\" style:next-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Subtitle_20_Char\\\" style:class=\\\"chapter\\\">\\n <style:text-properties fo:color=\\\"#595959\\\" loext:opacity=\\\"100%\\\" fo:font-size=\\\"14pt\\\"\\n fo:letter-spacing=\\\"0.0102in\\\" style:font-name-asian=\\\"F2\\\"\\n style:font-family-generic-asian=\\\"system\\\" style:font-pitch-asian=\\\"variable\\\"\\n style:font-size-asian=\\\"14pt\\\" style:font-name-complex=\\\"F2\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\"\\n style:font-size-complex=\\\"14pt\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"3490\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Quote\\\" style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Quote_20_Char\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.111in\\\" fo:margin-bottom=\\\"0.0311in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:text-align=\\\"center\\\"\\n style:justify-single-word=\\\"false\\\" />\\n <style:text-properties fo:color=\\\"#404040\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-style-asian=\\\"italic\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"List_20_Paragraph\\\" style:display-name=\\\"List Paragraph\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\">\\n <style:paragraph-properties fo:margin-left=\\\"0.5in\\\" fo:margin-top=\\\"0.0311in\\\"\\n fo:margin-bottom=\\\"0.0311in\\\" style:contextual-spacing=\\\"true\\\" />\\n </style:style>\\n <style:style style:name=\\\"Intense_20_Quote\\\" style:display-name=\\\"Intense Quote\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Intense_20_Quote_20_Char\\\">\\n <style:paragraph-properties fo:margin-left=\\\"0.6in\\\" fo:margin-right=\\\"0.6in\\\"\\n fo:margin-top=\\\"0.25in\\\" fo:margin-bottom=\\\"0.25in\\\" style:contextual-spacing=\\\"false\\\"\\n fo:text-align=\\\"center\\\" style:justify-single-word=\\\"false\\\" fo:padding-left=\\\"0in\\\"\\n fo:padding-right=\\\"0in\\\" fo:padding-top=\\\"0.139in\\\" fo:padding-bottom=\\\"0.139in\\\"\\n fo:border-left=\\\"none\\\" fo:border-right=\\\"none\\\" fo:border-top=\\\"0.51pt solid #0f4761\\\"\\n fo:border-bottom=\\\"0.51pt solid #0f4761\\\" />\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-style-asian=\\\"italic\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"PageBreak\\\" style:family=\\\"paragraph\\\"\\n style:parent-style-name=\\\"Standard\\\">\\n <style:paragraph-properties fo:break-before=\\\"page\\\" />\\n </style:style>\\n <style:style style:name=\\\"Codeblock\\\" style:family=\\\"paragraph\\\"\\n style:parent-style-name=\\\"Standard\\\">\\n <loext:graphic-properties draw:fill=\\\"solid\\\" draw:fill-color=\\\"#161616\\\" />\\n <style:paragraph-properties fo:line-height=\\\"100%\\\" fo:background-color=\\\"#161616\\\" />\\n <style:text-properties fo:color=\\\"#e1e4e8\\\" loext:opacity=\\\"100%\\\"\\n style:font-name=\\\"Geist Mono\\\"\\n fo:font-family=\\\"Geist Mono\\\" />\\n </style:style>\\n <style:style style:name=\\\"Heading_20_1_20_Char\\\" style:display-name=\\\"Heading 1 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_1\\\">\\n <style:text-properties fo:font-size=\\\"20pt\\\"\\n style:font-size-asian=\\\"20pt\\\"\\n style:font-size-complex=\\\"20pt\\\" />\\n </style:style>\\n <style:style style:name=\\\"Heading_20_2_20_Char\\\" style:display-name=\\\"Heading 2 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_2\\\">\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\" fo:font-size=\\\"16pt\\\"\\n style:font-size-asian=\\\"16pt\\\" style:font-size-complex=\\\"16pt\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_3_20_Char\\\" style:display-name=\\\"Heading 3 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_3\\\">\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\" fo:font-size=\\\"14pt\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-size-asian=\\\"14pt\\\"\\n style:font-name-complex=\\\"F2\\\" style:font-family-generic-complex=\\\"system\\\"\\n style:font-pitch-complex=\\\"variable\\\" style:font-size-complex=\\\"14pt\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_4_20_Char\\\" style:display-name=\\\"Heading 4 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_4\\\">\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-style-asian=\\\"italic\\\"\\n style:font-name-complex=\\\"F2\\\" style:font-family-generic-complex=\\\"system\\\"\\n style:font-pitch-complex=\\\"variable\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_5_20_Char\\\" style:display-name=\\\"Heading 5 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_5\\\">\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-name-complex=\\\"F2\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_6_20_Char\\\" style:display-name=\\\"Heading 6 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_6\\\">\\n <style:text-properties fo:color=\\\"#595959\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-style-asian=\\\"italic\\\"\\n style:font-name-complex=\\\"F2\\\" style:font-family-generic-complex=\\\"system\\\"\\n style:font-pitch-complex=\\\"variable\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"3490\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_7_20_Char\\\" style:display-name=\\\"Heading 7 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_7\\\">\\n <style:text-properties fo:color=\\\"#595959\\\" loext:opacity=\\\"100%\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-name-complex=\\\"F2\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"3490\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_8_20_Char\\\" style:display-name=\\\"Heading 8 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_8\\\">\\n <style:text-properties fo:color=\\\"#272727\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-style-asian=\\\"italic\\\"\\n style:font-name-complex=\\\"F2\\\" style:font-family-generic-complex=\\\"system\\\"\\n style:font-pitch-complex=\\\"variable\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"1529\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_9_20_Char\\\" style:display-name=\\\"Heading 9 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_9\\\">\\n <style:text-properties fo:color=\\\"#272727\\\" loext:opacity=\\\"100%\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-name-complex=\\\"F2\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"1529\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Title_20_Char\\\" style:display-name=\\\"Title Char\\\" style:family=\\\"text\\\"\\n style:parent-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Title\\\">\\n <style:text-properties style:font-name=\\\"Inter 18pt\\\" fo:font-size=\\\"28pt\\\"\\n fo:letter-spacing=\\\"-0.0071in\\\"\\n style:letter-kerning=\\\"true\\\"\\n style:font-size-asian=\\\"28pt\\\"\\n style:font-size-complex=\\\"28pt\\\" />\\n </style:style>\\n <style:style style:name=\\\"Subtitle_20_Char\\\" style:display-name=\\\"Subtitle Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Subtitle\\\">\\n <style:text-properties fo:color=\\\"#595959\\\" loext:opacity=\\\"100%\\\" fo:font-size=\\\"14pt\\\"\\n fo:letter-spacing=\\\"0.0102in\\\" style:font-name-asian=\\\"F2\\\"\\n style:font-family-generic-asian=\\\"system\\\" style:font-pitch-asian=\\\"variable\\\"\\n style:font-size-asian=\\\"14pt\\\" style:font-name-complex=\\\"F2\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\"\\n style:font-size-complex=\\\"14pt\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"3490\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Quote_20_Char\\\" style:display-name=\\\"Quote Char\\\" style:family=\\\"text\\\"\\n style:parent-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Quote\\\">\\n <style:text-properties fo:color=\\\"#404040\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-style-asian=\\\"italic\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Intense_20_Emphasis\\\" style:display-name=\\\"Intense Emphasis\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\">\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-style-asian=\\\"italic\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Intense_20_Quote_20_Char\\\" style:display-name=\\\"Intense Quote Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Intense_20_Quote\\\">\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-style-asian=\\\"italic\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Intense_20_Reference\\\" style:display-name=\\\"Intense Reference\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\">\\n <style:text-properties fo:font-variant=\\\"small-caps\\\" fo:color=\\\"#0f4761\\\"\\n loext:opacity=\\\"100%\\\" fo:letter-spacing=\\\"0.0035in\\\" fo:font-weight=\\\"bold\\\"\\n style:font-weight-asian=\\\"bold\\\" style:font-weight-complex=\\\"bold\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Internet_20_link\\\" style:display-name=\\\"Internet link\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\">\\n <style:text-properties style:font-name=\\\"Inter 18pt\\\" style:font-name-asian=\\\"Inter 18pt\\\"\\n style:font-name-complex=\\\"Times New Roman (Body CS)\\\" fo:color=\\\"#0000ef\\\"\\n loext:opacity=\\\"100%\\\"\\n style:text-underline-type=\\\"single\\\" style:text-underline-style=\\\"solid\\\"\\n style:text-underline-width=\\\"auto\\\" style:text-underline-mode=\\\"continuous\\\"\\n style:text-underline-color=\\\"font-color\\\" />\\n </style:style>\\n <style:style style:name=\\\"Unresolved_20_Mention\\\" style:display-name=\\\"Unresolved Mention\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\">\\n <style:text-properties fo:color=\\\"#605e5c\\\" loext:opacity=\\\"100%\\\"\\n fo:background-color=\\\"#e1dfdd\\\" />\\n </style:style>\\n <style:style style:name=\\\"ListLabel_20_1\\\" style:display-name=\\\"ListLabel 1\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_2\\\" style:display-name=\\\"ListLabel 2\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_3\\\" style:display-name=\\\"ListLabel 3\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_4\\\" style:display-name=\\\"ListLabel 4\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_5\\\" style:display-name=\\\"ListLabel 5\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_6\\\" style:display-name=\\\"ListLabel 6\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_7\\\" style:display-name=\\\"ListLabel 7\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_8\\\" style:display-name=\\\"ListLabel 8\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_9\\\" style:display-name=\\\"ListLabel 9\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_10\\\" style:display-name=\\\"ListLabel 10\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_11\\\" style:display-name=\\\"ListLabel 11\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_12\\\" style:display-name=\\\"ListLabel 12\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_13\\\" style:display-name=\\\"ListLabel 13\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_14\\\" style:display-name=\\\"ListLabel 14\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_15\\\" style:display-name=\\\"ListLabel 15\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_16\\\" style:display-name=\\\"ListLabel 16\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_17\\\" style:display-name=\\\"ListLabel 17\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_18\\\" style:display-name=\\\"ListLabel 18\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_19\\\" style:display-name=\\\"ListLabel 19\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_20\\\" style:display-name=\\\"ListLabel 20\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_21\\\" style:display-name=\\\"ListLabel 21\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_22\\\" style:display-name=\\\"ListLabel 22\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_23\\\" style:display-name=\\\"ListLabel 23\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_24\\\" style:display-name=\\\"ListLabel 24\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_25\\\" style:display-name=\\\"ListLabel 25\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_26\\\" style:display-name=\\\"ListLabel 26\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_27\\\" style:display-name=\\\"ListLabel 27\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_28\\\" style:display-name=\\\"ListLabel 28\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"Graphics\\\" style:family=\\\"graphic\\\">\\n <style:graphic-properties text:anchor-type=\\\"paragraph\\\" svg:x=\\\"0in\\\" svg:y=\\\"0in\\\"\\n style:wrap=\\\"dynamic\\\" style:number-wrapped-paragraphs=\\\"no-limit\\\"\\n style:wrap-contour=\\\"false\\\" style:vertical-pos=\\\"top\\\" style:vertical-rel=\\\"paragraph\\\"\\n style:horizontal-pos=\\\"center\\\" style:horizontal-rel=\\\"paragraph\\\" draw:fill=\\\"none\\\" />\\n </style:style>\\n <style:style style:name=\\\"Frame\\\" style:family=\\\"graphic\\\">\\n <style:graphic-properties fo:margin-left=\\\"0in\\\" fo:margin-right=\\\"0in\\\" fo:margin-top=\\\"0in\\\"\\n fo:margin-bottom=\\\"0in\\\" style:run-through=\\\"foreground\\\" style:wrap=\\\"dynamic\\\"\\n style:number-wrapped-paragraphs=\\\"no-limit\\\" style:vertical-pos=\\\"from-top\\\"\\n style:horizontal-pos=\\\"center\\\" style:horizontal-rel=\\\"paragraph\\\" fo:padding=\\\"0in\\\"\\n draw:fill=\\\"none\\\"\\n draw:stroke=\\\"none\\\"\\n fo:border=\\\"none\\\"\\n style:shadow=\\\"none\\\" svg:stroke-color=\\\"transparent\\\"\\n draw:shadow-opacity=\\\"100%\\\"\\n loext:rel-width-rel=\\\"paragraph\\\" />\\n </style:style>\\n <text:outline-style style:name=\\\"Outline\\\">\\n <text:outline-level-style text:level=\\\"1\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"2\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"3\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"4\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"5\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"6\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"7\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"8\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"9\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"10\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n </text:outline-style>\\n <text:list-style style:name=\\\"No_20_List\\\" style:display-name=\\\"No List\\\">\\n <text:list-level-style-number text:level=\\\"1\\\" loext:num-list-format=\\\"%1%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"0.5in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"0.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"2\\\" loext:num-list-format=\\\"%2%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"0.75in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"0.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"3\\\" loext:num-list-format=\\\"%3%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"1in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"1in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"4\\\" loext:num-list-format=\\\"%4%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"1.25in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"1.25in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"5\\\" loext:num-list-format=\\\"%5%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"1.5in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"1.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"6\\\" loext:num-list-format=\\\"%6%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"1.75in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"1.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"7\\\" loext:num-list-format=\\\"%7%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"2in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"2in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"8\\\" loext:num-list-format=\\\"%8%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"2.25in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"2.25in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"9\\\" loext:num-list-format=\\\"%9%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"2.5in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"2.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"10\\\" loext:num-list-format=\\\"%10%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"2.75in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"2.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n </text:list-style>\\n <text:list-style style:name=\\\"WWNum1\\\">\\n <text:list-level-style-bullet text:level=\\\"1\\\" text:style-name=\\\"ListLabel_20_1\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"0.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"2\\\" text:style-name=\\\"ListLabel_20_2\\\"\\n loext:num-list-format=\\\"◦\\\" style:num-suffix=\\\"◦\\\" text:bullet-char=\\\"◦\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"3\\\" text:style-name=\\\"ListLabel_20_3\\\"\\n loext:num-list-format=\\\"▪\\\" style:num-suffix=\\\"▪\\\" text:bullet-char=\\\"▪\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"4\\\" text:style-name=\\\"ListLabel_20_4\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"2in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"5\\\" text:style-name=\\\"ListLabel_20_5\\\"\\n loext:num-list-format=\\\"◦\\\" style:num-suffix=\\\"◦\\\" text:bullet-char=\\\"◦\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"2.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"6\\\" text:style-name=\\\"ListLabel_20_6\\\"\\n loext:num-list-format=\\\"▪\\\" style:num-suffix=\\\"▪\\\" text:bullet-char=\\\"▪\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"3in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"7\\\" text:style-name=\\\"ListLabel_20_7\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"3.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"8\\\" text:style-name=\\\"ListLabel_20_8\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"4in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"9\\\" text:style-name=\\\"ListLabel_20_9\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"4.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-number text:level=\\\"10\\\" loext:num-list-format=\\\"%10%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"2.75in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"2.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n </text:list-style>\\n <text:list-style style:name=\\\"WWNum2\\\">\\n <text:list-level-style-bullet text:level=\\\"1\\\" text:style-name=\\\"ListLabel_20_10\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"0.25in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"2\\\" text:style-name=\\\"ListLabel_20_11\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"0.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"3\\\" text:style-name=\\\"ListLabel_20_12\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"0.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"4\\\" text:style-name=\\\"ListLabel_20_13\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"5\\\" text:style-name=\\\"ListLabel_20_14\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1.25in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"6\\\" text:style-name=\\\"ListLabel_20_15\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"7\\\" text:style-name=\\\"ListLabel_20_16\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"8\\\" text:style-name=\\\"ListLabel_20_17\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"2in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"9\\\" text:style-name=\\\"ListLabel_20_18\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"2.25in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-number text:level=\\\"10\\\" loext:num-list-format=\\\"%10%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"2.75in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"2.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n </text:list-style>\\n <text:list-style style:name=\\\"WWNum3\\\">\\n <text:list-level-style-number text:level=\\\"1\\\" text:style-name=\\\"ListLabel_20_19\\\"\\n loext:num-list-format=\\\"%1%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"0.25in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"2\\\" text:style-name=\\\"ListLabel_20_20\\\"\\n loext:num-list-format=\\\"%2%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"0.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"3\\\" text:style-name=\\\"ListLabel_20_21\\\"\\n loext:num-list-format=\\\"%3%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"0.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"4\\\" text:style-name=\\\"ListLabel_20_22\\\"\\n loext:num-list-format=\\\"%4%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"5\\\" text:style-name=\\\"ListLabel_20_23\\\"\\n loext:num-list-format=\\\"%5%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1.25in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"6\\\" text:style-name=\\\"ListLabel_20_24\\\"\\n loext:num-list-format=\\\"%6%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"7\\\" text:style-name=\\\"ListLabel_20_25\\\"\\n loext:num-list-format=\\\"%7%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"8\\\" text:style-name=\\\"ListLabel_20_26\\\"\\n loext:num-list-format=\\\"%8%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"2in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"9\\\" text:style-name=\\\"ListLabel_20_27\\\"\\n loext:num-list-format=\\\"%9%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"2.25in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"10\\\" loext:num-list-format=\\\"%10%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"2.75in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"2.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n </text:list-style>\\n <text:notes-configuration text:note-class=\\\"footnote\\\" style:num-format=\\\"1\\\"\\n text:start-value=\\\"0\\\" text:footnotes-position=\\\"page\\\" text:start-numbering-at=\\\"document\\\" />\\n <text:notes-configuration text:note-class=\\\"endnote\\\" style:num-format=\\\"i\\\"\\n text:start-value=\\\"0\\\" />\\n <text:linenumbering-configuration text:number-lines=\\\"false\\\" text:offset=\\\"0.1965in\\\"\\n style:num-format=\\\"1\\\" text:number-position=\\\"left\\\" text:increment=\\\"5\\\" />\\n <style:default-page-layout>\\n <style:page-layout-properties style:layout-grid-standard-mode=\\\"true\\\" />\\n </style:default-page-layout>\\n <loext:theme loext:name=\\\"Office\\\">\\n <loext:theme-colors loext:name=\\\"LibreOffice\\\">\\n <loext:color loext:name=\\\"dark1\\\" loext:color=\\\"#000000\\\" />\\n <loext:color loext:name=\\\"light1\\\" loext:color=\\\"#ffffff\\\" />\\n <loext:color loext:name=\\\"dark2\\\" loext:color=\\\"#000000\\\" />\\n <loext:color loext:name=\\\"light2\\\" loext:color=\\\"#ffffff\\\" />\\n <loext:color loext:name=\\\"accent1\\\" loext:color=\\\"#18a303\\\" />\\n <loext:color loext:name=\\\"accent2\\\" loext:color=\\\"#0369a3\\\" />\\n <loext:color loext:name=\\\"accent3\\\" loext:color=\\\"#a33e03\\\" />\\n <loext:color loext:name=\\\"accent4\\\" loext:color=\\\"#8e03a3\\\" />\\n <loext:color loext:name=\\\"accent5\\\" loext:color=\\\"#c99c00\\\" />\\n <loext:color loext:name=\\\"accent6\\\" loext:color=\\\"#c9211e\\\" />\\n <loext:color loext:name=\\\"hyperlink\\\" loext:color=\\\"#0000ee\\\" />\\n <loext:color loext:name=\\\"followed-hyperlink\\\" loext:color=\\\"#551a8b\\\" />\\n </loext:theme-colors>\\n </loext:theme>\\n </office:styles>\\n <office:automatic-styles>\\n <style:style style:name=\\\"MP1\\\" style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Header\\\">\\n <style:text-properties officeooo:rsid=\\\"0008951b\\\" officeooo:paragraph-rsid=\\\"0008951b\\\" />\\n </style:style>\\n <style:style style:name=\\\"MP2\\\" style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Footer\\\">\\n <style:text-properties officeooo:rsid=\\\"0008951b\\\" officeooo:paragraph-rsid=\\\"0008951b\\\" />\\n </style:style>\\n <style:page-layout style:name=\\\"Mpm1\\\">\\n <style:page-layout-properties fo:page-width=\\\"8.2681in\\\" fo:page-height=\\\"11.6929in\\\"\\n style:num-format=\\\"1\\\" style:print-orientation=\\\"portrait\\\" fo:margin-top=\\\"1in\\\"\\n fo:margin-bottom=\\\"1in\\\" fo:margin-left=\\\"1in\\\" fo:margin-right=\\\"1in\\\"\\n style:writing-mode=\\\"lr-tb\\\" style:layout-grid-color=\\\"#c0c0c0\\\"\\n style:layout-grid-lines=\\\"38\\\" style:layout-grid-base-height=\\\"0.25in\\\"\\n style:layout-grid-ruby-height=\\\"0in\\\" style:layout-grid-mode=\\\"none\\\"\\n style:layout-grid-ruby-below=\\\"false\\\" style:layout-grid-print=\\\"false\\\"\\n style:layout-grid-display=\\\"false\\\" style:layout-grid-base-width=\\\"0.1665in\\\"\\n style:layout-grid-snap-to=\\\"true\\\" style:footnote-max-height=\\\"0in\\\"\\n loext:margin-gutter=\\\"0in\\\">\\n <style:footnote-sep style:width=\\\"0.0071in\\\" style:distance-before-sep=\\\"0.0398in\\\"\\n style:distance-after-sep=\\\"0.0398in\\\" style:line-style=\\\"solid\\\"\\n style:adjustment=\\\"left\\\" style:rel-width=\\\"25%\\\" style:color=\\\"#000000\\\" />\\n </style:page-layout-properties>\\n <style:header-style>\\n <style:header-footer-properties fo:min-height=\\\"0in\\\" fo:margin-bottom=\\\"0.1965in\\\"\\n fo:background-color=\\\"transparent\\\" />\\n </style:header-style>\\n <style:footer-style>\\n <style:header-footer-properties fo:min-height=\\\"0in\\\" fo:margin-top=\\\"0.1965in\\\"\\n fo:background-color=\\\"transparent\\\" />\\n </style:footer-style>\\n </style:page-layout>\\n <style:style style:name=\\\"Mdp1\\\" style:family=\\\"drawing-page\\\">\\n <style:drawing-page-properties draw:background-size=\\\"full\\\" />\\n </style:style>\\n </office:automatic-styles>\\n <office:master-styles>\\n <style:master-page style:name=\\\"Standard\\\" style:page-layout-name=\\\"Mpm1\\\"\\n draw:style-name=\\\"Mdp1\\\" />\\n </office:master-styles>\\n</office:document-styles>\"","import {\n Block,\n BlockNoteSchema,\n BlockSchema,\n COLORS_DEFAULT,\n Exporter,\n ExporterOptions,\n InlineContentSchema,\n StyleSchema,\n StyledText,\n} from \"@blocknote/core\";\nimport { loadFileBuffer } from \"@shared/util/fileUtil.js\";\nimport { getImageDimensions } from \"@shared/util/imageUtil.js\";\nimport { BlobReader, BlobWriter, TextReader, ZipWriter } from \"@zip.js/zip.js\";\nimport { renderToString } from \"react-dom/server\";\nimport stylesXml from \"./template/styles.xml?raw\";\n\nexport class ODTExporter<\n B extends BlockSchema,\n S extends StyleSchema,\n I extends InlineContentSchema,\n> extends Exporter<\n B,\n I,\n S,\n React.ReactNode,\n React.ReactNode,\n Record<string, string>,\n React.ReactNode\n> {\n // \"Styles\" to be added to the AutomaticStyles section of the ODT file\n // Keyed by the style name\n private automaticStyles: Map<string, React.ReactNode> = new Map();\n\n // \"Pictures\" to be added to the Pictures folder in the ODT file\n // Keyed by the original image URL\n private pictures = new Map<\n string,\n {\n file: Blob;\n fileName: string;\n height: number;\n width: number;\n }\n >();\n\n private styleCounter = 0;\n\n public readonly options: ExporterOptions;\n\n constructor(\n protected readonly schema: BlockNoteSchema<B, I, S>,\n mappings: Exporter<\n NoInfer<B>,\n NoInfer<I>,\n NoInfer<S>,\n React.ReactNode,\n React.ReactNode,\n Record<string, string>,\n React.ReactNode\n >[\"mappings\"],\n options?: Partial<ExporterOptions>,\n ) {\n const defaults = {\n colors: COLORS_DEFAULT,\n } satisfies Partial<ExporterOptions>;\n\n super(schema, mappings, { ...defaults, ...options });\n this.options = { ...defaults, ...options };\n }\n\n protected async loadFonts() {\n const interFont = await loadFileBuffer(\n await import(\"@shared/assets/fonts/inter/Inter_18pt-Regular.ttf\"),\n );\n const geistMonoFont = await loadFileBuffer(\n await import(\"@shared/assets/fonts/GeistMono-Regular.ttf\"),\n );\n\n return [\n {\n name: \"Inter 18pt\",\n fileName: \"Inter_18pt-Regular.ttf\",\n data: new Blob([interFont as ArrayBuffer], { type: \"font/ttf\" }),\n },\n {\n name: \"Geist Mono\",\n fileName: \"GeistMono-Regular.ttf\",\n data: new Blob([geistMonoFont as ArrayBuffer], { type: \"font/ttf\" }),\n },\n ];\n }\n\n public transformStyledText(styledText: StyledText<S>): React.ReactNode {\n const stylesArray = this.mapStyles(styledText.styles);\n const styles = Object.assign({}, ...stylesArray);\n\n if (Object.keys(styles).length === 0) {\n return styledText.text;\n }\n\n const styleName = `BN_T${++this.styleCounter}`;\n\n // Store the complete style element\n this.automaticStyles.set(\n styleName,\n <style:style style:name={styleName} style:family=\"text\">\n <style:text-properties {...styles} />\n </style:style>,\n );\n\n return <text:span text:style-name={styleName}>{styledText.text}</text:span>;\n }\n\n public async transformBlocks(\n blocks: Block<B, I, S>[],\n nestingLevel = 0,\n ): Promise<Awaited<React.ReactNode>[]> {\n const ret: Awaited<React.ReactNode>[] = [];\n let numberedListIndex = 0;\n\n for (const block of blocks) {\n if (block.type === \"numberedListItem\") {\n numberedListIndex++;\n } else {\n numberedListIndex = 0;\n }\n\n if ([\"columnList\", \"column\"].includes(block.type)) {\n const children = await this.transformBlocks(block.children, 0);\n const content = await this.mapBlock(\n block as any,\n 0,\n numberedListIndex,\n children,\n );\n\n ret.push(content);\n } else {\n const children = await this.transformBlocks(\n block.children,\n nestingLevel + 1,\n );\n const content = await this.mapBlock(\n block as any,\n nestingLevel,\n numberedListIndex,\n children,\n );\n\n ret.push(content);\n if (children.length > 0) {\n ret.push(...children);\n }\n }\n }\n\n return ret;\n }\n\n public async toODTDocument(\n blocks: Block<B, I, S>[],\n options?: {\n header?: string | XMLDocument;\n footer?: string | XMLDocument;\n },\n ): Promise<Blob> {\n const xmlOptionToString = (xmlDocument: string | XMLDocument) => {\n const xmlNamespacesRegEx =\n /<([a-zA-Z0-9:]+)\\s+?(?:xml)ns(?::[a-zA-Z0-9]+)?=\".*\"(.*)>/g;\n let stringifiedDoc = \"\";\n\n if (typeof xmlDocument === \"string\") {\n stringifiedDoc = xmlDocument;\n } else {\n const serializer = new XMLSerializer();\n\n stringifiedDoc = serializer.serializeToString(xmlDocument);\n }\n\n // Detect and remove XML namespaces (already defined in the root element)\n return stringifiedDoc.replace(xmlNamespacesRegEx, \"<$1$2>\");\n };\n const blockContent = await this.transformBlocks(blocks);\n const styles = Array.from(this.automaticStyles.values());\n const pictures = Array.from(this.pictures.values());\n const fonts = await this.loadFonts();\n const header = xmlOptionToString(options?.header || \"\");\n const footer = xmlOptionToString(options?.footer || \"\");\n\n const content = (\n <office:document-content\n xmlns:office=\"urn:oasis:names:tc:opendocument:xmlns:office:1.0\"\n xmlns:text=\"urn:oasis:names:tc:opendocument:xmlns:text:1.0\"\n xmlns:table=\"urn:oasis:names:tc:opendocument:xmlns:table:1.0\"\n xmlns:draw=\"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n xmlns:style=\"urn:oasis:names:tc:opendocument:xmlns:style:1.0\"\n xmlns:fo=\"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\"\n xmlns:svg=\"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\"\n xmlns:loext=\"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\"\n office:version=\"1.3\"\n >\n <office:font-face-decls>\n {fonts.map((font) => {\n return (\n <style:font-face\n style:name={font.name}\n svg:font-family={font.name}\n style:font-pitch=\"variable\"\n >\n <svg:font-face-src>\n <svg:font-face-uri\n xlink:href={`Fonts/${font.fileName}`}\n xlink:type=\"simple\"\n loext:font-style=\"normal\"\n loext:font-weight=\"normal\"\n >\n <svg:font-face-format svg:string=\"truetype\" />\n </svg:font-face-uri>\n </svg:font-face-src>\n </style:font-face>\n );\n })}\n </office:font-face-decls>\n <office:automatic-styles>{styles}</office:automatic-styles>\n {(header || footer) && (\n <office:master-styles>\n <style:master-page\n style:name=\"Standard\"\n style:page-layout-name=\"Mpm1\"\n draw:style-name=\"Mdp1\"\n >\n {header && (\n <style:header\n dangerouslySetInnerHTML={{\n __html: header,\n }}\n ></style:header>\n )}\n {footer && (\n <style:footer\n dangerouslySetInnerHTML={{\n __html: footer,\n }}\n ></style:footer>\n )}\n </style:master-page>\n </office:master-styles>\n )}\n <office:body>\n <office:text>{blockContent}</office:text>\n </office:body>\n </office:document-content>\n );\n\n const manifestNode = (\n <manifest:manifest\n xmlns:manifest=\"urn:oasis:names:tc:opendocument:xmlns:manifest:1.0\"\n manifest:version=\"1.3\"\n >\n <manifest:file-entry\n manifest:media-type=\"application/vnd.oasis.opendocument.text\"\n manifest:full-path=\"/\"\n />\n <manifest:file-entry\n manifest:media-type=\"text/xml\"\n manifest:full-path=\"content.xml\"\n />\n <manifest:file-entry\n manifest:media-type=\"text/xml\"\n manifest:full-path=\"styles.xml\"\n />\n {pictures.map((picture) => {\n return (\n <manifest:file-entry\n manifest:media-type={picture.file.type}\n manifest:full-path={`Pictures/${picture.fileName}`}\n />\n );\n })}\n {fonts.map((font) => {\n return (\n <manifest:file-entry\n manifest:media-type=\"application/x-font-ttf\"\n manifest:full-path={`Fonts/${font.fileName}`}\n />\n );\n })}\n </manifest:manifest>\n );\n const zipWriter = new ZipWriter(\n new BlobWriter(\"application/vnd.oasis.opendocument.text\"),\n );\n\n // Add mimetype first, uncompressed\n zipWriter.add(\n \"mimetype\",\n new TextReader(\"application/vnd.oasis.opendocument.text\"),\n {\n compressionMethod: 0,\n level: 0,\n dataDescriptor: false,\n extendedTimestamp: false,\n },\n );\n\n const contentXml = renderToString(content);\n const manifestXml = renderToString(manifestNode);\n\n zipWriter.add(\"content.xml\", new TextReader(contentXml));\n zipWriter.add(\"styles.xml\", new TextReader(stylesXml));\n zipWriter.add(\"META-INF/manifest.xml\", new TextReader(manifestXml));\n fonts.forEach((font) => {\n zipWriter.add(`Fonts/${font.fileName}`, new BlobReader(font.data));\n });\n pictures.forEach((picture) => {\n zipWriter.add(\n `Pictures/${picture.fileName}`,\n new BlobReader(picture.file),\n );\n });\n\n return zipWriter.close();\n }\n\n public registerStyle(style: (name: string) => React.ReactNode): string {\n const styleName = `BN_S${++this.styleCounter}`;\n this.automaticStyles.set(styleName, style(styleName));\n return styleName;\n }\n\n public async registerPicture(url: string): Promise<{\n path: string;\n mimeType: string;\n height: number;\n width: number;\n }> {\n const mimeTypeFileExtensionMap = {\n \"image/apng\": \"apng\",\n \"image/avif\": \"avif\",\n \"image/bmp\": \"bmp\",\n \"image/gif\": \"gif\",\n \"image/vnd.microsoft.icon\": \"ico\",\n \"image/jpeg\": \"jpg\",\n \"image/png\": \"png\",\n \"image/svg+xml\": \"svg\",\n \"image/tiff\": \"tiff\",\n \"image/webp\": \"webp\",\n };\n if (this.pictures.has(url)) {\n const picture = this.pictures.get(url)!;\n\n return {\n path: `Pictures/${picture.fileName}`,\n mimeType: picture.file.type,\n height: picture.height,\n width: picture.width,\n };\n }\n\n const blob = await this.resolveFile(url);\n const fileExtension =\n mimeTypeFileExtensionMap[\n blob.type as keyof typeof mimeTypeFileExtensionMap\n ] || \"png\";\n const fileName = `picture-${this.pictures.size}.${fileExtension}`;\n const { width, height } = await getImageDimensions(blob);\n\n this.pictures.set(url, {\n file: blob,\n fileName: fileName,\n height,\n width,\n });\n\n return { path: `Pictures/${fileName}`, mimeType: blob.type, height, width };\n }\n}\n"],"mappings":"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"}