WPS 电子表格
| @ -100,7 +100,7 @@ importScripts("https://cdn.sheetjs.com/xlsx-${current}/package/dist/xlsx.full.mi | ||||
| </code></pre> | ||||
| 
 | ||||
| 
 | ||||
| ## ECMAScript Module Imports in a SCRIPT TAG | ||||
| ## ECMAScript Module Imports | ||||
| 
 | ||||
| :::caution | ||||
| 
 | ||||
| @ -150,6 +150,7 @@ xport.addEventListener("click", async() => { | ||||
| </script>`} | ||||
| </code></pre> | ||||
| 
 | ||||
| Web Worker support is noted in [the demo](../../demos/worker#installation) | ||||
| 
 | ||||
| ## Bower | ||||
| 
 | ||||
|  | ||||
| @ -26,7 +26,7 @@ This was tested against `lume v1.12.0` on 2022 October 4. | ||||
| 1) Create a stock site: | ||||
| 
 | ||||
| ```bash | ||||
| mkdir sheetjs-lume | ||||
| mkdir -p sheetjs-lume | ||||
| cd sheetjs-lume | ||||
| deno run -A https://deno.land/x/lume/init.ts | ||||
| ``` | ||||
| @ -41,7 +41,7 @@ The project will be configured and modules will be installed. | ||||
| 2) Download <https://sheetjs.com/pres.numbers> and place in a `_data` folder: | ||||
| 
 | ||||
| ```bash | ||||
| mkdir _data | ||||
| mkdir -p _data | ||||
| curl -LO https://sheetjs.com/pres.numbers | ||||
| mv pres.numbers _data | ||||
| ``` | ||||
|  | ||||
| @ -25,9 +25,48 @@ importScripts("https://cdn.sheetjs.com/xlsx-latest/package/dist/xlsx.full.min.js | ||||
| 
 | ||||
| For production use, it is highly encouraged to download and host the script. | ||||
| 
 | ||||
| <details><summary><b>ECMAScript Module Support</b> (click to show)</summary> | ||||
| 
 | ||||
| :::note Browser Compatibility | ||||
| 
 | ||||
| ESM is supported in Web Workers in the Chromium family of browsers (including | ||||
| Chrome and Edge) as well as in Webkit-based browsers (including Safari). | ||||
| 
 | ||||
| For support in legacy browsers like Firefox, `importScripts` should be used. | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| ```js | ||||
| import * as XLSX from "https://cdn.sheetjs.com/xlsx-latest/package/xlsx.mjs"; | ||||
| ``` | ||||
| 
 | ||||
| When using modules, the script must be served with the correct MIME type and the | ||||
| Worker constructor must set the `type` option: | ||||
| 
 | ||||
| ```js | ||||
| const worker_code = `\ | ||||
| /* load standalone script from CDN */ | ||||
| import * as XLSX from "https://cdn.sheetjs.com/xlsx-latest/package/xlsx.mjs"; | ||||
| // ... do something with XLSX here ... | ||||
| `; | ||||
| const worker = new Worker( | ||||
|   URL.createObjectURL( | ||||
|     new Blob( | ||||
|       [ worker_code ], | ||||
|       // highlight-next-line | ||||
|       { type: "text/javascript" } // second argument to the Blob constructor | ||||
|     ) | ||||
|   ), | ||||
|   // highlight-next-line | ||||
|   {type: "module"} // second argument to Worker constructor | ||||
| ); | ||||
| ``` | ||||
| 
 | ||||
| </details> | ||||
| 
 | ||||
| ## Downloading a Remote File | ||||
| 
 | ||||
| :::note | ||||
| :::note fetch in Web Workers | ||||
| 
 | ||||
| `fetch` was enabled in Web Workers in Chrome 42 and Safari 10.3 | ||||
| 
 | ||||
| @ -46,7 +85,7 @@ In the following example, the script: | ||||
| 
 | ||||
| ```jsx live | ||||
| function SheetJSFetchDLWorker() { | ||||
|   const [html, setHTML] = React.useState(""); | ||||
|   const [__html, setHTML] = React.useState(""); | ||||
| 
 | ||||
|   return ( <> | ||||
|     <button onClick={() => { | ||||
| @ -70,7 +109,7 @@ self.addEventListener('message', async(e) => { | ||||
|     const html = XLSX.utils.sheet_to_html(ws); | ||||
| 
 | ||||
|     /* Reply with result */ | ||||
|     postMessage({html: html}); | ||||
|     postMessage({ html }); | ||||
|   } catch(e) { | ||||
|     /* Pass the error message back */ | ||||
|     postMessage({html: String(e.message || e).bold() }); | ||||
| @ -82,14 +121,14 @@ self.addEventListener('message', async(e) => { | ||||
|       /* post a message to the worker */ | ||||
|       worker.postMessage({}); | ||||
|     }}><b>Click to Start</b></button> | ||||
|     <div dangerouslySetInnerHTML={{__html: html}}/> | ||||
|     <div dangerouslySetInnerHTML={{ __html }}/> | ||||
|   </> ); | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| ## Creating a Local File | ||||
| 
 | ||||
| :::caution `XLSX.writeFile` | ||||
| :::caution Writing files from Web Workers | ||||
| 
 | ||||
| `XLSX.writeFile` will not work in Web Workers!  Raw file data can be passed from | ||||
| the Web Worker to the main browser context for downloading. | ||||
| @ -106,7 +145,7 @@ In the following example, the script: | ||||
| 
 | ||||
| ```jsx live | ||||
| function SheetJSWriteFileWorker() { | ||||
|   const [html, setHTML] = React.useState(""); | ||||
|   const [__html, setHTML] = React.useState(""); | ||||
| 
 | ||||
|   return ( <> | ||||
|     <button onClick={() => { setHTML(""); | ||||
| @ -154,23 +193,23 @@ SheetJS,in,Web,Workers | ||||
|       /* post a message to the worker */ | ||||
|       worker.postMessage({}); | ||||
|     }}><b>Click to Start</b></button> | ||||
|     <div dangerouslySetInnerHTML={{__html: html}}/> | ||||
|     <div dangerouslySetInnerHTML={{ __html }}/> | ||||
|   </> ); | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| ## User-Submitted File | ||||
| 
 | ||||
| :::note | ||||
| :::note FileReaderSync | ||||
| 
 | ||||
| Typically `FileReader` is used in the main browser context. In Web Workers, the | ||||
| synchronous version `FileReaderSync` is more efficient. | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| In the following example, the script: | ||||
| In the following example, when a file is dropped over the DIV or when the INPUT | ||||
| element is used to select a file, the script: | ||||
| 
 | ||||
| - waits for the user to drag-drop a file into a DIV | ||||
| - sends the `File` object to the Web Worker | ||||
| - loads the SheetJS library and parses the file in the Worker | ||||
| - generates an HTML string of the first table in the Worker | ||||
| @ -179,15 +218,12 @@ In the following example, the script: | ||||
| 
 | ||||
| ```jsx live | ||||
| function SheetJSDragDropWorker() { | ||||
|   const [html, setHTML] = React.useState(""); | ||||
|   const [__html, setHTML] = React.useState(""); | ||||
|   /* suppress default behavior for drag and drop */ | ||||
|   function suppress(e) { e.stopPropagation(); e.preventDefault(); } | ||||
|   return ( <> | ||||
|     <div onDragOver={suppress} onDragEnter={suppress} onDrop={(e) => { | ||||
|       suppress(e); | ||||
| 
 | ||||
|       /* this mantra embeds the worker source in the function */ | ||||
|       const worker = new Worker(URL.createObjectURL(new Blob([`\ | ||||
|   /* this worker is shared between drag-drop and file input element */ | ||||
|   const worker = new Worker(URL.createObjectURL(new Blob([`\ | ||||
| /* load standalone script from CDN */ | ||||
| importScripts("https://cdn.sheetjs.com/xlsx-latest/package/dist/xlsx.full.min.js"); | ||||
| 
 | ||||
| @ -205,19 +241,27 @@ self.addEventListener('message', (e) => { | ||||
|     const html = XLSX.utils.sheet_to_html(ws); | ||||
| 
 | ||||
|     /* Reply with result */ | ||||
|     postMessage({html: html}); | ||||
|     postMessage({ html }); | ||||
|   } catch(e) { | ||||
|     /* Pass the error message back */ | ||||
|     postMessage({html: String(e.message || e).bold() }); | ||||
|   } | ||||
| }, false); | ||||
|       `]))); | ||||
|       /* when the worker sends back the HTML, add it to the DOM */ | ||||
|       worker.onmessage = function(e) { setHTML(e.data.html); }; | ||||
|   `]))); | ||||
|     /* when the worker sends back the HTML, add it to the DOM */ | ||||
|     worker.onmessage = function(e) { setHTML(e.data.html); }; | ||||
|   return ( <> | ||||
|     <div onDragOver={suppress} onDragEnter={suppress} onDrop={(e) => { | ||||
|       suppress(e); | ||||
|       /* post a message with the first File to the worker */ | ||||
|       worker.postMessage({ file: e.dataTransfer.files[0] }); | ||||
|     }}>Drag a file to this DIV to process!</div> | ||||
|     <div dangerouslySetInnerHTML={{__html: html}}/> | ||||
|     }}>Drag a file to this DIV to process! (or use the file input)</div> | ||||
|     <input type="file" onChange={(e) => { | ||||
|       suppress(e); | ||||
|       /* post a message with the first File to the worker */ | ||||
|       worker.postMessage({ file: e.target.files[0] }); | ||||
|     }}/> | ||||
|     <div dangerouslySetInnerHTML={{ __html }}/> | ||||
|   </> ); | ||||
| } | ||||
| ``` | ||||
| @ -130,7 +130,7 @@ import { read, utils, writeFileXLSX } from 'xlsx'; | ||||
| 
 | ||||
| export default function SheetJSReactHTML() { | ||||
|   /* the component state is an HTML string */ | ||||
|   const [html, setHtml] = useState(""); | ||||
|   const [__html, setHtml] = useState(""); | ||||
|   /* the ref is used in export */ | ||||
|   const tbl = useRef(null); | ||||
| 
 | ||||
| @ -157,7 +157,7 @@ export default function SheetJSReactHTML() { | ||||
|   return ( <> | ||||
|     <button onClick={exportFile}>Export XLSX</button> | ||||
|   // highlight-next-line | ||||
|     <div ref={tbl} dangerouslySetInnerHTML={{ __html: html }} /> | ||||
|     <div ref={tbl} dangerouslySetInnerHTML={{ __html }} /> | ||||
|   </>); | ||||
| } | ||||
| ``` | ||||
|  | ||||
| @ -782,7 +782,7 @@ With configuration, SystemJS supports both browser and NodeJS deployments. | ||||
| 
 | ||||
| :::caution | ||||
| 
 | ||||
| This demo was written against SystemJS 0.19, the most popular SystemJS version. | ||||
| This demo was written against SystemJS 0.19, the most popular SystemJS version | ||||
| used with Angular applications.  In the years since the release, Angular and | ||||
| other tools using SystemJS have switched to Webpack. | ||||
| 
 | ||||
|  | ||||
| @ -119,7 +119,7 @@ exports.handler = function(event, context, callback) { | ||||
| 1) Create a new folder and download [`index.js`](pathname:///aws/index.js): | ||||
| 
 | ||||
| ```bash | ||||
| mkdir SheetJSLambda | ||||
| mkdir -p SheetJSLambda | ||||
| cd SheetJSLambda | ||||
| curl -LO https://docs.sheetjs.com/aws/index.js | ||||
| ``` | ||||
| @ -127,7 +127,7 @@ curl -LO https://docs.sheetjs.com/aws/index.js | ||||
| 2) Install dependencies to the current directory; | ||||
| 
 | ||||
| ```bash | ||||
| mkdir node_modules | ||||
| mkdir -p node_modules | ||||
| npm install https://cdn.sheetjs.com/xlsx-latest/xlsx-latest.tgz busboy | ||||
| ``` | ||||
| 
 | ||||
|  | ||||
| @ -107,7 +107,7 @@ and show the data in an HTML table. | ||||
| 
 | ||||
| ```jsx live | ||||
| function SheetJSXHRDL() { | ||||
|   const [html, setHTML] = React.useState(""); | ||||
|   const [__html, setHTML] = React.useState(""); | ||||
| 
 | ||||
|   /* Fetch and update HTML */ | ||||
|   React.useEffect(async() => { | ||||
| @ -126,7 +126,7 @@ function SheetJSXHRDL() { | ||||
|     req.send(); | ||||
|   }, []); | ||||
| 
 | ||||
|   return (<div dangerouslySetInnerHTML={{__html: html}}/>); | ||||
|   return (<div dangerouslySetInnerHTML={{ __html }}/>); | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| @ -156,7 +156,7 @@ will parse the workbook and return an HTML table. | ||||
| 
 | ||||
| ```jsx live | ||||
| function SheetJSXHRUL() { | ||||
|   const [html, setHTML] = React.useState(""); | ||||
|   const [__html, setHTML] = React.useState(""); | ||||
|   const [sz, setSz] = React.useState(0); | ||||
|   const csv = "a,b,c\n1,2,3"; | ||||
|   /* Fetch and update HTML */ | ||||
| @ -183,7 +183,7 @@ function SheetJSXHRUL() { | ||||
|     <div>{csv}</div> | ||||
|     {sz ? (<> | ||||
|       <b>Generated file size: {sz} bytes</b> | ||||
|       <div dangerouslySetInnerHTML={{__html: html}}/> | ||||
|       <div dangerouslySetInnerHTML={{ __html }}/> | ||||
|     </>) : (<button onClick={xport}><b>Export and Upload!</b></button>)} | ||||
|   </pre>); | ||||
| } | ||||
| @ -217,7 +217,7 @@ the data in an HTML table. | ||||
| 
 | ||||
| ```jsx live | ||||
| function SheetJSFetchDL() { | ||||
|   const [html, setHTML] = React.useState(""); | ||||
|   const [__html, setHTML] = React.useState(""); | ||||
| 
 | ||||
|   /* Fetch and update HTML */ | ||||
|   React.useEffect(async() => { | ||||
| @ -233,7 +233,7 @@ function SheetJSFetchDL() { | ||||
|     setHTML(XLSX.utils.sheet_to_html(ws)); | ||||
|   }, []); | ||||
| 
 | ||||
|   return (<div dangerouslySetInnerHTML={{__html: html}}/>); | ||||
|   return (<div dangerouslySetInnerHTML={{ __html }}/>); | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| @ -253,7 +253,7 @@ the workbook and return an HTML table. | ||||
| 
 | ||||
| ```jsx live | ||||
| function SheetJSFetchUL() { | ||||
|   const [html, setHTML] = React.useState(""); | ||||
|   const [__html, setHTML] = React.useState(""); | ||||
|   const [sz, setSz] = React.useState(0); | ||||
|   const csv = "a,b,c\n1,2,3"; | ||||
|   /* Fetch and update HTML */ | ||||
| @ -280,7 +280,7 @@ function SheetJSFetchUL() { | ||||
|     <div>{csv}</div> | ||||
|     {sz ? (<> | ||||
|       <b>Generated file size: {sz} bytes</b> | ||||
|       <div dangerouslySetInnerHTML={{__html: html}}/> | ||||
|       <div dangerouslySetInnerHTML={{ __html }}/> | ||||
|     </>) : (<button onClick={xport}><b>Export and Upload!</b></button>)} | ||||
|   </pre>); | ||||
| } | ||||
| @ -315,7 +315,7 @@ the data in an HTML table. | ||||
| 
 | ||||
| ```jsx live | ||||
| function SheetJSAxiosDL() { | ||||
|   const [html, setHTML] = React.useState(""); | ||||
|   const [__html, setHTML] = React.useState(""); | ||||
| 
 | ||||
|   /* Fetch and update HTML */ | ||||
|   React.useEffect(async() => { | ||||
| @ -330,7 +330,7 @@ function SheetJSAxiosDL() { | ||||
|     setHTML(XLSX.utils.sheet_to_html(ws)); | ||||
|   }, []); | ||||
| 
 | ||||
|   return (<div dangerouslySetInnerHTML={{__html: html}}/>); | ||||
|   return (<div dangerouslySetInnerHTML={{ __html }}/>); | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| @ -349,7 +349,7 @@ the workbook and return an HTML table. | ||||
| 
 | ||||
| ```jsx live | ||||
| function SheetJSAxiosUL() { | ||||
|   const [html, setHTML] = React.useState(""); | ||||
|   const [__html, setHTML] = React.useState(""); | ||||
|   const [sz, setSz] = React.useState(0); | ||||
|   const csv = "a,b,c\n1,2,3"; | ||||
|   /* Fetch and update HTML */ | ||||
| @ -376,7 +376,7 @@ function SheetJSAxiosUL() { | ||||
|     <div>{csv}</div> | ||||
|     {sz ? (<> | ||||
|       <b>Generated file size: {sz} bytes</b> | ||||
|       <div dangerouslySetInnerHTML={{__html: html}}/> | ||||
|       <div dangerouslySetInnerHTML={{ __html }}/> | ||||
|     </>) : (<button onClick={xport}><b>Export and Upload!</b></button>)} | ||||
|   </pre>); | ||||
| } | ||||
| @ -406,7 +406,7 @@ show the data in an HTML table. | ||||
| 
 | ||||
| ```jsx live | ||||
| function SheetJSSuperAgentDL() { | ||||
|   const [html, setHTML] = React.useState(""); | ||||
|   const [__html, setHTML] = React.useState(""); | ||||
| 
 | ||||
|   /* Fetch and update HTML */ | ||||
|   React.useEffect(async() => { | ||||
| @ -424,7 +424,7 @@ function SheetJSSuperAgentDL() { | ||||
|       }); | ||||
|   }, []); | ||||
| 
 | ||||
|   return (<div dangerouslySetInnerHTML={{__html: html}}/>); | ||||
|   return (<div dangerouslySetInnerHTML={{ __html }}/>); | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| @ -444,7 +444,7 @@ parse the workbook and return an HTML table. | ||||
| 
 | ||||
| ```jsx live | ||||
| function SheetJSSuperAgentUL() { | ||||
|   const [html, setHTML] = React.useState(""); | ||||
|   const [__html, setHTML] = React.useState(""); | ||||
|   const [sz, setSz] = React.useState(0); | ||||
|   const csv = "a,b,c\n1,2,3"; | ||||
|   /* Fetch and update HTML */ | ||||
| @ -472,7 +472,7 @@ function SheetJSSuperAgentUL() { | ||||
|     <div>{csv}</div> | ||||
|     {sz ? (<> | ||||
|       <b>Generated file size: {sz} bytes</b> | ||||
|       <div dangerouslySetInnerHTML={{__html: html}}/> | ||||
|       <div dangerouslySetInnerHTML={{ __html }}/> | ||||
|     </>) : (<button onClick={xport}><b>Export and Upload!</b></button>)} | ||||
|   </pre>); | ||||
| } | ||||
|  | ||||
| @ -594,3 +594,12 @@ Z.TEST | ||||
| ``` | ||||
| 
 | ||||
| </details> | ||||
| 
 | ||||
| ## Caveats | ||||
| 
 | ||||
| In some cases, seemingly valid formulae may be rejected by spreadsheet software. | ||||
| 
 | ||||
| `EVALUATE` unprefixed function is supported in WPS Office formulae.  It is not | ||||
| valid in a cell formula in Excel. It can be used in an Excel defined name when | ||||
| exporting to XLSM format but not XLSX. This is a limitation of Excel.  Since WPS | ||||
| Office accepts files with `EVALUATE`, the writer does not warn or throw errors. | ||||
| @ -29,6 +29,7 @@ hide_table_of_contents: true | ||||
| | UTF-16 Unicode Text (TXT)                                    |   ✔   |   ✔   | | ||||
| | **Other Workbook/Worksheet Formats**                         |:-----:|:-----:| | ||||
| | Numbers 3.0+ / iWork 2013+ Spreadsheet (NUMBERS)             |   ✔   |   ✔   | | ||||
| | WPS 电子表格 (ET)                                            |   ✔   |       | | ||||
| | OpenDocument Spreadsheet (ODS)                               |   ✔   |   ✔   | | ||||
| | Flat XML ODF Spreadsheet (FODS)                              |   ✔   |   ✔   | | ||||
| | Uniform Office Format Spreadsheet (标文通 UOS1/UOS2)         |   ✔   |       | | ||||
| @ -180,7 +181,7 @@ The parser focuses on extracting raw data from tables.  Numbers technically | ||||
| supports multiple tables in a logical worksheet, including custom titles.  This | ||||
| parser will generate one worksheet per Numbers table. | ||||
| 
 | ||||
| The writer currently exports a small range from the first worksheet. | ||||
| The writer generates one table per sheet. | ||||
| 
 | ||||
| #### OpenDocument Spreadsheet (ODS/FODS) | ||||
| 
 | ||||
| @ -195,6 +196,11 @@ UOS is a very similar format, and it comes in 2 varieties corresponding to ODS | ||||
| and FODS respectively.  For the most part, the difference between the formats | ||||
| is in the names of tags and attributes. | ||||
| 
 | ||||
| #### WPS Office Spreadsheet (ET) | ||||
| 
 | ||||
| ET is the native format for WPS Office Spreadsheet.  It extends the BIFF8 XLS | ||||
| format with proprietary extensions. | ||||
| 
 | ||||
| ### Miscellaneous Worksheet Formats | ||||
| 
 | ||||
| Many older formats supported only one worksheet: | ||||
|  | ||||
| Before Width: | Height: | Size: 275 KiB After Width: | Height: | Size: 352 KiB | 
| @ -147,7 +147,7 @@ support for CSS styling and rich text. | ||||
| ```jsx live | ||||
| /* The live editor requires this function wrapper */ | ||||
| function Numbers2HTML(props) { | ||||
|   const [html, setHTML] = React.useState(""); | ||||
|   const [__html, setHTML] = React.useState(""); | ||||
| 
 | ||||
|   /* Fetch and update HTML */ | ||||
|   React.useEffect(async() => { | ||||
| @ -163,7 +163,7 @@ function Numbers2HTML(props) { | ||||
|     setHTML(XLSX.utils.sheet_to_html(ws)); | ||||
|   }, []); | ||||
| 
 | ||||
|   return (<div dangerouslySetInnerHTML={{__html: html}}/>); | ||||
|   return (<div dangerouslySetInnerHTML={{ __html }}/>); | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| @ -227,7 +227,7 @@ This,is,a,Test | ||||
|     }}><b>Export XLSX!</b></button> | ||||
| 
 | ||||
|     {/* Show HTML preview */} | ||||
|     <div dangerouslySetInnerHTML={{__html}}/> | ||||
|     <div dangerouslySetInnerHTML={{ __html }}/> | ||||
|   </>); | ||||
| } | ||||
| ``` | ||||
|  | ||||
							
								
								
									
										
											BIN
										
									
								
								formats.png
									
									
									
									
									
								
							
							
								
									
								
								
								
								
								
									
									
								
							
						
						| Before Width: | Height: | Size: 275 KiB After Width: | Height: | Size: 352 KiB | 
							
								
								
									
										
											BIN
										
									
								
								legend.png
									
									
									
									
									
								
							
							
								
									
								
								
								
								
								
									
									
								
							
						
						| Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 31 KiB | 
| @ -17,6 +17,7 @@ digraph G { | ||||
| 	subgraph OLD { | ||||
| 		node  [style=filled,color=cyan]; | ||||
| 		nums  [label="NUMBERS"]; | ||||
| 		et    [label="ET"]; | ||||
| 		ods   [label="ODS"]; | ||||
| 		fods  [label="FODS"]; | ||||
| 		uos   [label="UOS"]; | ||||
| @ -43,61 +44,62 @@ digraph G { | ||||
| 
 | ||||
| 	subgraph WORKBOOK { | ||||
| 		edge [color=blue]; | ||||
| 		csf -> xlsx | ||||
| 		csf  -> xlsx | ||||
| 		xlsx -> csf | ||||
| 		csf -> xlsb | ||||
| 		csf  -> xlsb | ||||
| 		xlsb -> csf | ||||
| 		csf -> xlml | ||||
| 		csf  -> xlml | ||||
| 		xlml -> csf | ||||
| 		csf -> xls5 | ||||
| 		csf  -> xls5 | ||||
| 		xls5 -> csf | ||||
| 		csf -> xls8 | ||||
| 		csf  -> xls8 | ||||
| 		xls8 -> csf | ||||
| 		wq2 -> csf | ||||
| 		ods -> csf | ||||
| 		csf -> ods | ||||
| 		wq2  -> csf | ||||
| 		ods  -> csf | ||||
| 		csf  -> ods | ||||
| 		fods -> csf | ||||
| 		csf -> fods | ||||
| 		uos -> csf | ||||
| 		wk3 -> csf | ||||
| 		csf -> wk3 | ||||
| 		wk4 -> csf | ||||
| 		123 -> csf | ||||
| 		qpw -> csf | ||||
| 		csf  -> fods | ||||
| 		uos  -> csf | ||||
| 		wk3  -> csf | ||||
| 		csf  -> wk3 | ||||
| 		wk4  -> csf | ||||
| 		123  -> csf | ||||
| 		qpw  -> csf | ||||
| 		nums -> csf | ||||
| 		csf -> nums | ||||
| 		csf  -> nums | ||||
| 		et   -> csf | ||||
| 	} | ||||
| 	subgraph WORKSHEET { | ||||
| 		edge [color=aquamarine4]; | ||||
| 		xls2 -> csf | ||||
| 		csf -> xls2 | ||||
| 		csf  -> xls2 | ||||
| 		xls3 -> csf | ||||
| 		csf -> xls3 | ||||
| 		csf  -> xls3 | ||||
| 		xls4 -> csf | ||||
| 		csf -> xls4 | ||||
| 		csf -> slk | ||||
| 		slk -> csf | ||||
| 		csf -> dif | ||||
| 		wk1 -> csf | ||||
| 		csf -> wk1 | ||||
| 		xlr -> csf | ||||
| 		wq1 -> csf | ||||
| 		csf  -> xls4 | ||||
| 		csf  -> slk | ||||
| 		slk  -> csf | ||||
| 		csf  -> dif | ||||
| 		wk1  -> csf | ||||
| 		csf  -> wk1 | ||||
| 		xlr  -> csf | ||||
| 		wq1  -> csf | ||||
| 		wksl -> csf | ||||
| 		wksm -> csf | ||||
| 		dif -> csf | ||||
| 		rtf -> csf | ||||
| 		csf -> rtf | ||||
| 		prn -> csf | ||||
| 		csf -> prn | ||||
| 		csv -> csf | ||||
| 		csf -> csv | ||||
| 		txt -> csf | ||||
| 		csf -> txt | ||||
| 		dbf -> csf | ||||
| 		csf -> dbf | ||||
| 		dif  -> csf | ||||
| 		rtf  -> csf | ||||
| 		csf  -> rtf | ||||
| 		prn  -> csf | ||||
| 		csf  -> prn | ||||
| 		csv  -> csf | ||||
| 		csf  -> csv | ||||
| 		txt  -> csf | ||||
| 		csf  -> txt | ||||
| 		dbf  -> csf | ||||
| 		csf  -> dbf | ||||
| 		html -> csf | ||||
| 		csf -> html | ||||
| 		csf -> eth | ||||
| 		eth -> csf | ||||
| 		csf  -> html | ||||
| 		csf  -> eth | ||||
| 		eth  -> csf | ||||
| 	} | ||||
| } | ||||
|  | ||||
							
								
								
									
										500
									
								
								misc/formats.svg
									
									
									
									
									
								
							
							
								
									
								
								
								
								
								
									
									
								
							
						
						| @ -1,540 +1,552 @@ | ||||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" | ||||
|  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> | ||||
| <!-- Generated by graphviz version 3.0.0 (20220226.1711) | ||||
| <!-- Generated by graphviz version 6.0.1 (20220911.1526) | ||||
|  --> | ||||
| <!-- Title: G Pages: 1 --> | ||||
| <svg width="1056pt" height="1033pt" | ||||
|  viewBox="0.00 0.00 1055.79 1032.90" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | ||||
| <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1028.9)"> | ||||
| <svg width="1317pt" height="1269pt" | ||||
|  viewBox="0.00 0.00 1317.17 1269.35" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | ||||
| <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1265.35)"> | ||||
| <title>G</title> | ||||
| <polygon fill="white" stroke="transparent" points="-4,4 -4,-1028.9 1051.79,-1028.9 1051.79,4 -4,4"/> | ||||
| <polygon fill="white" stroke="none" points="-4,4 -4,-1265.35 1313.17,-1265.35 1313.17,4 -4,4"/> | ||||
| <!-- csf --> | ||||
| <g id="node1" class="node"> | ||||
| <title>csf</title> | ||||
| <ellipse fill="none" stroke="black" cx="523.61" cy="-511.58" rx="94.52" ry="94.52"/> | ||||
| <ellipse fill="none" stroke="black" cx="523.61" cy="-511.58" rx="98.51" ry="98.51"/> | ||||
| <text text-anchor="middle" x="523.61" y="-541.98" font-family="Indie Flower" font-size="22.00">Common</text> | ||||
| <text text-anchor="middle" x="523.61" y="-517.98" font-family="Indie Flower" font-size="22.00">Spreadsheet</text> | ||||
| <text text-anchor="middle" x="523.61" y="-493.98" font-family="Indie Flower" font-size="22.00">Format</text> | ||||
| <text text-anchor="middle" x="523.61" y="-469.98" font-family="Indie Flower" font-size="22.00">(JS Object)</text> | ||||
| <ellipse fill="none" stroke="black" cx="652.98" cy="-627.81" rx="123.07" ry="123.07"/> | ||||
| <ellipse fill="none" stroke="black" cx="652.98" cy="-627.81" rx="127.07" ry="127.07"/> | ||||
| <text text-anchor="middle" x="652.98" y="-658.21" font-family="Indie Flower" font-size="22.00">Common</text> | ||||
| <text text-anchor="middle" x="652.98" y="-634.21" font-family="Indie Flower" font-size="22.00">Spreadsheet</text> | ||||
| <text text-anchor="middle" x="652.98" y="-610.21" font-family="Indie Flower" font-size="22.00">Format</text> | ||||
| <text text-anchor="middle" x="652.98" y="-586.21" font-family="Indie Flower" font-size="22.00">(JS Object)</text> | ||||
| </g> | ||||
| <!-- xls2 --> | ||||
| <g id="node2" class="node"> | ||||
| <title>xls2</title> | ||||
| <ellipse fill="#00ff00" stroke="#00ff00" cx="997.58" cy="-511.58" rx="50.41" ry="39.7"/> | ||||
| <text text-anchor="middle" x="997.58" y="-517.98" font-family="Indie Flower" font-size="22.00">XLS</text> | ||||
| <text text-anchor="middle" x="997.58" y="-493.98" font-family="Indie Flower" font-size="22.00">BIFF2</text> | ||||
| <ellipse fill="#00ff00" stroke="#00ff00" cx="1246.94" cy="-627.81" rx="62.45" ry="39.7"/> | ||||
| <text text-anchor="middle" x="1246.94" y="-634.21" font-family="Indie Flower" font-size="22.00">XLS</text> | ||||
| <text text-anchor="middle" x="1246.94" y="-610.21" font-family="Indie Flower" font-size="22.00">BIFF2</text> | ||||
| </g> | ||||
| <!-- csf->xls2 --> | ||||
| <g id="edge25" class="edge"> | ||||
| <g id="edge26" class="edge"> | ||||
| <title>csf->xls2</title> | ||||
| <path fill="none" stroke="#458b74" d="M622.39,-517.19C717.42,-518.98 858.03,-518.67 937.37,-516.26"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="937.8,-519.75 947.68,-515.93 937.57,-512.76 937.8,-519.75"/> | ||||
| <path fill="none" stroke="#458b74" d="M780.03,-633.46C900.33,-635.22 1076.7,-634.87 1174.63,-632.41"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="1174.83,-635.91 1184.73,-632.14 1174.64,-628.91 1174.83,-635.91"/> | ||||
| </g> | ||||
| <!-- xls3 --> | ||||
| <g id="node3" class="node"> | ||||
| <title>xls3</title> | ||||
| <ellipse fill="#00ff00" stroke="#00ff00" cx="985.74" cy="-616.89" rx="48.58" ry="39.7"/> | ||||
| <text text-anchor="middle" x="985.74" y="-623.29" font-family="Indie Flower" font-size="22.00">XLS</text> | ||||
| <text text-anchor="middle" x="985.74" y="-599.29" font-family="Indie Flower" font-size="22.00">BIFF3</text> | ||||
| <ellipse fill="#00ff00" stroke="#00ff00" cx="1232.72" cy="-757.01" rx="60.62" ry="39.7"/> | ||||
| <text text-anchor="middle" x="1232.72" y="-763.41" font-family="Indie Flower" font-size="22.00">XLS</text> | ||||
| <text text-anchor="middle" x="1232.72" y="-739.41" font-family="Indie Flower" font-size="22.00">BIFF3</text> | ||||
| </g> | ||||
| <!-- csf->xls3 --> | ||||
| <g id="edge27" class="edge"> | ||||
| <g id="edge28" class="edge"> | ||||
| <title>csf->xls3</title> | ||||
| <path fill="none" stroke="#458b74" d="M618.68,-539C711.44,-561.98 849.59,-593.14 927.26,-608.33"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="926.87,-611.81 937.35,-610.27 928.19,-604.94 926.87,-611.81"/> | ||||
| <path fill="none" stroke="#458b74" d="M775.76,-660.96C893.76,-689.07 1067.85,-727.49 1163.49,-746.23"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="1162.86,-749.67 1173.35,-748.15 1164.2,-742.8 1162.86,-749.67"/> | ||||
| </g> | ||||
| <!-- xls4 --> | ||||
| <g id="node4" class="node"> | ||||
| <title>xls4</title> | ||||
| <ellipse fill="#00ff00" stroke="#00ff00" cx="951.7" cy="-715.02" rx="48.17" ry="39.7"/> | ||||
| <text text-anchor="middle" x="951.7" y="-721.42" font-family="Indie Flower" font-size="22.00">XLS</text> | ||||
| <text text-anchor="middle" x="951.7" y="-697.42" font-family="Indie Flower" font-size="22.00">BIFF4</text> | ||||
| <ellipse fill="#00ff00" stroke="#00ff00" cx="1191.34" cy="-878.73" rx="60.62" ry="39.7"/> | ||||
| <text text-anchor="middle" x="1191.34" y="-885.13" font-family="Indie Flower" font-size="22.00">XLS</text> | ||||
| <text text-anchor="middle" x="1191.34" y="-861.13" font-family="Indie Flower" font-size="22.00">BIFF4</text> | ||||
| </g> | ||||
| <!-- csf->xls4 --> | ||||
| <g id="edge29" class="edge"> | ||||
| <g id="edge30" class="edge"> | ||||
| <title>csf->xls4</title> | ||||
| <path fill="none" stroke="#458b74" d="M610.42,-559.05C696.65,-602.03 826.1,-663.17 898.26,-694.7"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="897.06,-697.99 907.63,-698.76 899.85,-691.57 897.06,-697.99"/> | ||||
| <path fill="none" stroke="#458b74" d="M765.75,-686.61C876.31,-740.12 1040.75,-816.32 1129.38,-854.76"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="1128.19,-858.06 1138.76,-858.81 1130.97,-851.63 1128.19,-858.06"/> | ||||
| </g> | ||||
| <!-- xls5 --> | ||||
| <g id="node5" class="node"> | ||||
| <title>xls5</title> | ||||
| <ellipse fill="#00ff00" stroke="#00ff00" cx="895.8" cy="-805.05" rx="50.82" ry="39.7"/> | ||||
| <text text-anchor="middle" x="895.8" y="-811.45" font-family="Indie Flower" font-size="22.00">XLS</text> | ||||
| <text text-anchor="middle" x="895.8" y="-787.45" font-family="Indie Flower" font-size="22.00">BIFF5</text> | ||||
| <ellipse fill="#00ff00" stroke="#00ff00" cx="1123" cy="-990.95" rx="63.78" ry="39.7"/> | ||||
| <text text-anchor="middle" x="1123" y="-997.35" font-family="Indie Flower" font-size="22.00">XLS</text> | ||||
| <text text-anchor="middle" x="1123" y="-973.35" font-family="Indie Flower" font-size="22.00">BIFF5</text> | ||||
| </g> | ||||
| <!-- csf->xls5 --> | ||||
| <g id="edge7" class="edge"> | ||||
| <title>csf->xls5</title> | ||||
| <path fill="none" stroke="blue" d="M597.71,-577.15C672.23,-638.22 784.86,-726.59 848.21,-773.36"/> | ||||
| <polygon fill="blue" stroke="blue" points="846.31,-776.31 856.44,-779.4 850.45,-770.66 846.31,-776.31"/> | ||||
| <path fill="none" stroke="blue" d="M750.07,-709.96C847.44,-787.49 993.68,-899.91 1070.93,-956.2"/> | ||||
| <polygon fill="blue" stroke="blue" points="1068.95,-959.08 1079.1,-962.12 1073.06,-953.42 1068.95,-959.08"/> | ||||
| </g> | ||||
| <!-- xls8 --> | ||||
| <g id="node6" class="node"> | ||||
| <title>xls8</title> | ||||
| <ellipse fill="#00ff00" stroke="#00ff00" cx="821.3" cy="-880.41" rx="48.17" ry="39.7"/> | ||||
| <text text-anchor="middle" x="821.3" y="-886.81" font-family="Indie Flower" font-size="22.00">XLS</text> | ||||
| <text text-anchor="middle" x="821.3" y="-862.81" font-family="Indie Flower" font-size="22.00">BIFF8</text> | ||||
| <ellipse fill="#00ff00" stroke="#00ff00" cx="1032.22" cy="-1084.94" rx="60.21" ry="39.7"/> | ||||
| <text text-anchor="middle" x="1032.22" y="-1091.34" font-family="Indie Flower" font-size="22.00">XLS</text> | ||||
| <text text-anchor="middle" x="1032.22" y="-1067.34" font-family="Indie Flower" font-size="22.00">BIFF8</text> | ||||
| </g> | ||||
| <!-- csf->xls8 --> | ||||
| <g id="edge9" class="edge"> | ||||
| <title>csf->xls8</title> | ||||
| <path fill="none" stroke="blue" d="M581.29,-591.97C641.33,-669.31 733.48,-782.86 784.4,-841.8"/> | ||||
| <polygon fill="blue" stroke="blue" points="781.8,-844.14 791,-849.39 787.09,-839.55 781.8,-844.14"/> | ||||
| <path fill="none" stroke="blue" d="M729.75,-729.21C809.3,-828 930.45,-973.25 992.55,-1043.68"/> | ||||
| <polygon fill="blue" stroke="blue" points="990.21,-1046.32 999.46,-1051.48 995.45,-1041.68 990.21,-1046.32"/> | ||||
| </g> | ||||
| <!-- xlml --> | ||||
| <g id="node7" class="node"> | ||||
| <title>xlml</title> | ||||
| <ellipse fill="#00ff00" stroke="#00ff00" cx="721.05" cy="-942.48" rx="62.87" ry="39.7"/> | ||||
| <text text-anchor="middle" x="721.05" y="-948.88" font-family="Indie Flower" font-size="22.00">SSML</text> | ||||
| <text text-anchor="middle" x="721.05" y="-924.88" font-family="Indie Flower" font-size="22.00">(2003/4)</text> | ||||
| <ellipse fill="#00ff00" stroke="#00ff00" cx="909.77" cy="-1163.4" rx="78.48" ry="39.7"/> | ||||
| <text text-anchor="middle" x="909.77" y="-1169.8" font-family="Indie Flower" font-size="22.00">SSML</text> | ||||
| <text text-anchor="middle" x="909.77" y="-1145.8" font-family="Indie Flower" font-size="22.00">(2003/4)</text> | ||||
| </g> | ||||
| <!-- csf->xlml --> | ||||
| <g id="edge5" class="edge"> | ||||
| <title>csf->xlml</title> | ||||
| <path fill="none" stroke="blue" d="M559.66,-603.72C598.81,-693.6 660.19,-826.63 694.96,-896.23"/> | ||||
| <polygon fill="blue" stroke="blue" points="691.86,-897.85 699.48,-905.21 698.11,-894.7 691.86,-897.85"/> | ||||
| <path fill="none" stroke="blue" d="M702.81,-744.82C756.58,-861.29 840.06,-1034.2 882.78,-1116.54"/> | ||||
| <polygon fill="blue" stroke="blue" points="879.67,-1118.17 887.4,-1125.41 885.88,-1114.93 879.67,-1118.17"/> | ||||
| </g> | ||||
| <!-- xlsx --> | ||||
| <g id="node8" class="node"> | ||||
| <title>xlsx</title> | ||||
| <ellipse fill="#00ff00" stroke="#00ff00" cx="612.75" cy="-977.1" rx="43.68" ry="39.7"/> | ||||
| <text text-anchor="middle" x="612.75" y="-983.5" font-family="Indie Flower" font-size="22.00">XLSX</text> | ||||
| <text text-anchor="middle" x="612.75" y="-959.5" font-family="Indie Flower" font-size="22.00">XLSM</text> | ||||
| <ellipse fill="#00ff00" stroke="#00ff00" cx="777.46" cy="-1208.58" rx="54.39" ry="39.7"/> | ||||
| <text text-anchor="middle" x="777.46" y="-1214.98" font-family="Indie Flower" font-size="22.00">XLSX</text> | ||||
| <text text-anchor="middle" x="777.46" y="-1190.98" font-family="Indie Flower" font-size="22.00">XLSM</text> | ||||
| </g> | ||||
| <!-- csf->xlsx --> | ||||
| <g id="edge1" class="edge"> | ||||
| <title>csf->xlsx</title> | ||||
| <path fill="none" stroke="blue" d="M536.68,-609.66C553.49,-707.36 581.86,-853.31 599,-928.49"/> | ||||
| <polygon fill="blue" stroke="blue" points="595.68,-929.66 601.34,-938.61 602.5,-928.08 595.68,-929.66"/> | ||||
| <path fill="none" stroke="blue" d="M674.08,-753.23C699.43,-880.52 740.85,-1071.11 762.95,-1159.86"/> | ||||
| <polygon fill="blue" stroke="blue" points="759.58,-1160.82 765.41,-1169.66 766.37,-1159.11 759.58,-1160.82"/> | ||||
| </g> | ||||
| <!-- xlsb --> | ||||
| <g id="node9" class="node"> | ||||
| <title>xlsb</title> | ||||
| <ellipse fill="#00ff00" stroke="#00ff00" cx="507.8" cy="-985.3" rx="54.39" ry="39.7"/> | ||||
| <text text-anchor="middle" x="507.8" y="-991.7" font-family="Indie Flower" font-size="22.00">XLSB</text> | ||||
| <text text-anchor="middle" x="507.8" y="-967.7" font-family="Indie Flower" font-size="22.00">BIFF12</text> | ||||
| <ellipse fill="#00ff00" stroke="#00ff00" cx="648.16" cy="-1221.76" rx="68.68" ry="39.7"/> | ||||
| <text text-anchor="middle" x="648.16" y="-1228.16" font-family="Indie Flower" font-size="22.00">XLSB</text> | ||||
| <text text-anchor="middle" x="648.16" y="-1204.16" font-family="Indie Flower" font-size="22.00">BIFF12</text> | ||||
| </g> | ||||
| <!-- csf->xlsb --> | ||||
| <g id="edge3" class="edge"> | ||||
| <title>csf->xlsb</title> | ||||
| <path fill="none" stroke="blue" d="M514.71,-610.13C509.53,-709.25 504.98,-858.13 505.12,-935.15"/> | ||||
| <polygon fill="blue" stroke="blue" points="501.62,-935.54 505.17,-945.53 508.62,-935.51 501.62,-935.54"/> | ||||
| <path fill="none" stroke="blue" d="M646.29,-754.82C643.33,-885.07 642.31,-1081.08 644.61,-1172.08"/> | ||||
| <polygon fill="blue" stroke="blue" points="641.11,-1172.22 644.89,-1182.12 648.11,-1172.03 641.11,-1172.22"/> | ||||
| </g> | ||||
| <!-- nums --> | ||||
| <g id="node10" class="node"> | ||||
| <title>nums</title> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="371.79" cy="-960.59" rx="77.15" ry="22.76"/> | ||||
| <text text-anchor="middle" x="371.79" y="-954.99" font-family="Indie Flower" font-size="22.00">NUMBERS</text> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="476.1" cy="-1194.83" rx="98.99" ry="22.76"/> | ||||
| <text text-anchor="middle" x="476.1" y="-1189.23" font-family="Indie Flower" font-size="22.00">NUMBERS</text> | ||||
| </g> | ||||
| <!-- csf->nums --> | ||||
| <g id="edge23" class="edge"> | ||||
| <title>csf->nums</title> | ||||
| <path fill="none" stroke="blue" d="M486.66,-603.37C450.44,-704.18 398.22,-860.67 378.95,-927.99"/> | ||||
| <polygon fill="blue" stroke="blue" points="375.58,-927.06 376.25,-937.64 382.32,-928.95 375.58,-927.06"/> | ||||
| <path fill="none" stroke="blue" d="M609.74,-747.42C566.53,-879.14 503.83,-1082.75 482.89,-1161.84"/> | ||||
| <polygon fill="blue" stroke="blue" points="479.45,-1161.17 480.33,-1171.72 486.23,-1162.92 479.45,-1161.17"/> | ||||
| </g> | ||||
| <!-- ods --> | ||||
| <g id="node11" class="node"> | ||||
| <g id="node12" class="node"> | ||||
| <title>ods</title> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="258.58" cy="-904.55" rx="42.35" ry="22.76"/> | ||||
| <text text-anchor="middle" x="258.58" y="-898.95" font-family="Indie Flower" font-size="22.00">ODS</text> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="332.22" cy="-1127.72" rx="53.07" ry="22.76"/> | ||||
| <text text-anchor="middle" x="332.22" y="-1122.12" font-family="Indie Flower" font-size="22.00">ODS</text> | ||||
| </g> | ||||
| <!-- csf->ods --> | ||||
| <g id="edge13" class="edge"> | ||||
| <title>csf->ods</title> | ||||
| <path fill="none" stroke="blue" d="M463.73,-590.35C402.62,-677.38 311.79,-813.17 274.9,-873.69"/> | ||||
| <polygon fill="blue" stroke="blue" points="271.81,-872.02 269.65,-882.39 277.81,-875.63 271.81,-872.02"/> | ||||
| <path fill="none" stroke="blue" d="M579.61,-731.7C503.59,-846.45 390.27,-1024.46 348.4,-1096.2"/> | ||||
| <polygon fill="blue" stroke="blue" points="345.17,-1094.8 343.2,-1105.21 351.23,-1098.3 345.17,-1094.8"/> | ||||
| </g> | ||||
| <!-- fods --> | ||||
| <g id="node12" class="node"> | ||||
| <g id="node13" class="node"> | ||||
| <title>fods</title> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="182.28" cy="-840.45" rx="50.41" ry="22.76"/> | ||||
| <text text-anchor="middle" x="182.28" y="-834.85" font-family="Indie Flower" font-size="22.00">FODS</text> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="235.67" cy="-1050.48" rx="63.78" ry="22.76"/> | ||||
| <text text-anchor="middle" x="235.67" y="-1044.88" font-family="Indie Flower" font-size="22.00">FODS</text> | ||||
| </g> | ||||
| <!-- csf->fods --> | ||||
| <g id="edge15" class="edge"> | ||||
| <title>csf->fods</title> | ||||
| <path fill="none" stroke="blue" d="M448.58,-576.09C371.6,-647.51 256.35,-759.37 206.55,-811.72"/> | ||||
| <polygon fill="blue" stroke="blue" points="204,-809.32 199.69,-819 209.1,-814.12 204,-809.32"/> | ||||
| <path fill="none" stroke="blue" d="M559.69,-714.25C462.76,-809.61 317.44,-957.8 260.11,-1020.7"/> | ||||
| <polygon fill="blue" stroke="blue" points="257.35,-1018.53 253.24,-1028.29 262.55,-1023.22 257.35,-1018.53"/> | ||||
| </g> | ||||
| <!-- html --> | ||||
| <g id="node14" class="node"> | ||||
| <g id="node15" class="node"> | ||||
| <title>html</title> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="118.85" cy="-758.21" rx="46.84" ry="39.7"/> | ||||
| <text text-anchor="middle" x="118.85" y="-764.61" font-family="Indie Flower" font-size="22.00">HTML</text> | ||||
| <text text-anchor="middle" x="118.85" y="-740.61" font-family="Indie Flower" font-size="22.00">Table</text> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="154.49" cy="-950.78" rx="57.97" ry="39.7"/> | ||||
| <text text-anchor="middle" x="154.49" y="-957.18" font-family="Indie Flower" font-size="22.00">HTML</text> | ||||
| <text text-anchor="middle" x="154.49" y="-933.18" font-family="Indie Flower" font-size="22.00">Table</text> | ||||
| </g> | ||||
| <!-- csf->html --> | ||||
| <g id="edge51" class="edge"> | ||||
| <g id="edge52" class="edge"> | ||||
| <title>csf->html</title> | ||||
| <path fill="none" stroke="#458b74" d="M436.33,-558.2C352,-607.43 227.75,-683.58 162.5,-726.37"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="160.5,-723.5 154.08,-731.93 164.35,-729.34 160.5,-723.5"/> | ||||
| <path fill="none" stroke="#458b74" d="M543.27,-692.15C436.52,-759.13 279.4,-861.48 201.63,-915.19"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="199.23,-912.6 193,-921.17 203.22,-918.35 199.23,-912.6"/> | ||||
| </g> | ||||
| <!-- csv --> | ||||
| <g id="node15" class="node"> | ||||
| <g id="node16" class="node"> | ||||
| <title>csv</title> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="79.84" cy="-678.11" rx="35.21" ry="22.76"/> | ||||
| <text text-anchor="middle" x="79.84" y="-672.51" font-family="Indie Flower" font-size="22.00">CSV</text> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="103.65" cy="-853.72" rx="44.6" ry="22.76"/> | ||||
| <text text-anchor="middle" x="103.65" y="-848.12" font-family="Indie Flower" font-size="22.00">CSV</text> | ||||
| </g> | ||||
| <!-- csf->csv --> | ||||
| <g id="edge45" class="edge"> | ||||
| <g id="edge46" class="edge"> | ||||
| <title>csf->csv</title> | ||||
| <path fill="none" stroke="#458b74" d="M429.15,-541.04C331.87,-575.47 185.16,-631.09 117.03,-659.87"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="115.39,-656.77 107.57,-663.91 118.14,-663.2 115.39,-656.77"/> | ||||
| <path fill="none" stroke="#458b74" d="M533.32,-670.91C410.07,-719.5 224.93,-796.31 143.96,-833.04"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="142.25,-829.97 134.61,-837.31 145.16,-836.34 142.25,-829.97"/> | ||||
| </g> | ||||
| <!-- txt --> | ||||
| <g id="node16" class="node"> | ||||
| <g id="node17" class="node"> | ||||
| <title>txt</title> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="55.15" cy="-583.75" rx="55.31" ry="39.7"/> | ||||
| <text text-anchor="middle" x="55.15" y="-590.15" font-family="Indie Flower" font-size="22.00">TXT</text> | ||||
| <text text-anchor="middle" x="55.15" y="-566.15" font-family="Indie Flower" font-size="22.00">UTF-16</text> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="69.3" cy="-737.87" rx="69.09" ry="39.7"/> | ||||
| <text text-anchor="middle" x="69.3" y="-744.27" font-family="Indie Flower" font-size="22.00">TXT</text> | ||||
| <text text-anchor="middle" x="69.3" y="-720.27" font-family="Indie Flower" font-size="22.00">UTF-16</text> | ||||
| </g> | ||||
| <!-- csf->txt --> | ||||
| <g id="edge47" class="edge"> | ||||
| <g id="edge48" class="edge"> | ||||
| <title>csf->txt</title> | ||||
| <path fill="none" stroke="#458b74" d="M425.12,-521.09C332.47,-533.58 196.55,-554.79 117.84,-569.24"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="116.78,-565.88 107.59,-571.15 118.06,-572.76 116.78,-565.88"/> | ||||
| <path fill="none" stroke="#458b74" d="M527.07,-645.8C409.83,-666.14 239.07,-698.67 142.67,-719.27"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="141.76,-715.88 132.72,-721.41 143.24,-722.73 141.76,-715.88"/> | ||||
| </g> | ||||
| <!-- dbf --> | ||||
| <g id="node17" class="node"> | ||||
| <g id="node18" class="node"> | ||||
| <title>dbf</title> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="50.78" cy="-478.57" rx="43.27" ry="22.76"/> | ||||
| <text text-anchor="middle" x="50.78" y="-472.97" font-family="Indie Flower" font-size="22.00">DBF</text> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="59.31" cy="-608.98" rx="53.07" ry="22.76"/> | ||||
| <text text-anchor="middle" x="59.31" y="-603.38" font-family="Indie Flower" font-size="22.00">DBF</text> | ||||
| </g> | ||||
| <!-- csf->dbf --> | ||||
| <g id="edge49" class="edge"> | ||||
| <g id="edge50" class="edge"> | ||||
| <title>csf->dbf</title> | ||||
| <path fill="none" stroke="#458b74" d="M425.45,-499.11C327.93,-490.46 182.02,-480.65 104.19,-477.83"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="104.24,-474.33 94.12,-477.5 104,-481.33 104.24,-474.33"/> | ||||
| <path fill="none" stroke="#458b74" d="M526.16,-618.13C401.99,-612.38 217.94,-606.98 122.25,-606.62"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="122.15,-603.12 112.15,-606.61 122.14,-610.12 122.15,-603.12"/> | ||||
| </g> | ||||
| <!-- dif --> | ||||
| <g id="node18" class="node"> | ||||
| <g id="node19" class="node"> | ||||
| <title>dif</title> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="64.07" cy="-395.46" rx="33.88" ry="22.76"/> | ||||
| <text text-anchor="middle" x="64.07" y="-389.86" font-family="Indie Flower" font-size="22.00">DIF</text> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="71.25" cy="-507.86" rx="41.94" ry="22.76"/> | ||||
| <text text-anchor="middle" x="71.25" y="-502.26" font-family="Indie Flower" font-size="22.00">DIF</text> | ||||
| </g> | ||||
| <!-- csf->dif --> | ||||
| <g id="edge32" class="edge"> | ||||
| <g id="edge33" class="edge"> | ||||
| <title>csf->dif</title> | ||||
| <path fill="none" stroke="#458b74" d="M429.2,-481.95C330.69,-455.07 180.59,-417.66 107.33,-402.16"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="108.02,-398.73 97.52,-400.12 106.6,-405.58 108.02,-398.73"/> | ||||
| <path fill="none" stroke="#458b74" d="M529.68,-596.62C403.28,-568.62 212.8,-529.9 122.38,-514.31"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="122.83,-510.84 112.38,-512.61 121.65,-517.74 122.83,-510.84"/> | ||||
| </g> | ||||
| <!-- slk --> | ||||
| <g id="node19" class="node"> | ||||
| <g id="node20" class="node"> | ||||
| <title>slk</title> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="90.7" cy="-318.6" rx="40.11" ry="22.76"/> | ||||
| <text text-anchor="middle" x="90.7" y="-313" font-family="Indie Flower" font-size="22.00">SYLK</text> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="99.26" cy="-412.89" rx="50.41" ry="22.76"/> | ||||
| <text text-anchor="middle" x="99.26" y="-407.29" font-family="Indie Flower" font-size="22.00">SYLK</text> | ||||
| </g> | ||||
| <!-- csf->slk --> | ||||
| <g id="edge30" class="edge"> | ||||
| <g id="edge31" class="edge"> | ||||
| <title>csf->slk</title> | ||||
| <path fill="none" stroke="#458b74" d="M435.66,-466.25C344.49,-423.52 205.65,-362.13 135.13,-333.78"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="136.23,-330.45 125.64,-330 133.64,-336.95 136.23,-330.45"/> | ||||
| <path fill="none" stroke="#458b74" d="M536.57,-576.57C417.67,-528.41 238.49,-459.42 151,-428.59"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="152.15,-425.29 141.56,-425.29 149.84,-431.89 152.15,-425.29"/> | ||||
| </g> | ||||
| <!-- prn --> | ||||
| <g id="node20" class="node"> | ||||
| <g id="node21" class="node"> | ||||
| <title>prn</title> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="133.25" cy="-242.74" rx="39.7" ry="22.76"/> | ||||
| <text text-anchor="middle" x="133.25" y="-237.14" font-family="Indie Flower" font-size="22.00">PRN</text> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="147.05" cy="-316.64" rx="50.41" ry="22.76"/> | ||||
| <text text-anchor="middle" x="147.05" y="-311.04" font-family="Indie Flower" font-size="22.00">PRN</text> | ||||
| </g> | ||||
| <!-- csf->prn --> | ||||
| <g id="edge43" class="edge"> | ||||
| <g id="edge44" class="edge"> | ||||
| <title>csf->prn</title> | ||||
| <path fill="none" stroke="#458b74" d="M445.43,-450.94C362.4,-391.42 234.63,-304.03 171.38,-264.02"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="172.86,-260.81 162.53,-258.47 169.14,-266.74 172.86,-260.81"/> | ||||
| <path fill="none" stroke="#458b74" d="M547.71,-556.43C437.14,-486.18 268.64,-383.23 190.1,-338.55"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="191.41,-335.26 180.98,-333.39 187.97,-341.36 191.41,-335.26"/> | ||||
| </g> | ||||
| <!-- rtf --> | ||||
| <g id="node21" class="node"> | ||||
| <g id="node22" class="node"> | ||||
| <title>rtf</title> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="186.96" cy="-177.94" rx="37.45" ry="22.76"/> | ||||
| <text text-anchor="middle" x="186.96" y="-172.34" font-family="Indie Flower" font-size="22.00">RTF</text> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="209.04" cy="-233.21" rx="46.84" ry="22.76"/> | ||||
| <text text-anchor="middle" x="209.04" y="-227.61" font-family="Indie Flower" font-size="22.00">RTF</text> | ||||
| </g> | ||||
| <!-- csf->rtf --> | ||||
| <g id="edge41" class="edge"> | ||||
| <g id="edge42" class="edge"> | ||||
| <title>csf->rtf</title> | ||||
| <path fill="none" stroke="#458b74" d="M457.39,-438.07C384.75,-363.31 271.41,-251.77 217.44,-202.62"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="219.68,-199.94 209.92,-195.84 214.99,-205.13 219.68,-199.94"/> | ||||
| <path fill="none" stroke="#458b74" d="M561.77,-539.18C462.96,-448.73 310.47,-314.07 243.04,-258.5"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="245.21,-255.75 235.25,-252.13 240.77,-261.17 245.21,-255.75"/> | ||||
| </g> | ||||
| <!-- wk1 --> | ||||
| <g id="node22" class="node"> | ||||
| <g id="node23" class="node"> | ||||
| <title>wk1</title> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="247.81" cy="-126.11" rx="35.21" ry="22.76"/> | ||||
| <text text-anchor="middle" x="247.81" y="-120.51" font-family="Indie Flower" font-size="22.00">WK1</text> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="278.55" cy="-166.72" rx="42.35" ry="22.76"/> | ||||
| <text text-anchor="middle" x="278.55" y="-161.12" font-family="Indie Flower" font-size="22.00">WK1</text> | ||||
| </g> | ||||
| <!-- csf->wk1 --> | ||||
| <g id="edge34" class="edge"> | ||||
| <g id="edge35" class="edge"> | ||||
| <title>csf->wk1</title> | ||||
| <path fill="none" stroke="#458b74" d="M470.68,-427.98C411.03,-341.2 316.74,-210.42 272.33,-153.8"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="274.86,-151.35 265.9,-145.69 269.37,-155.7 274.86,-151.35"/> | ||||
| <path fill="none" stroke="#458b74" d="M577.27,-525.62C493.31,-419.08 362.35,-258.92 305.89,-194.74"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="308.31,-192.2 299.06,-187.04 303.08,-196.84 308.31,-192.2"/> | ||||
| </g> | ||||
| <!-- wk3 --> | ||||
| <g id="node24" class="node"> | ||||
| <g id="node25" class="node"> | ||||
| <title>wk3</title> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="316.52" cy="-85.24" rx="37.45" ry="22.76"/> | ||||
| <text text-anchor="middle" x="316.52" y="-79.64" font-family="Indie Flower" font-size="22.00">WK3</text> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="356.66" cy="-113.04" rx="45.01" ry="22.76"/> | ||||
| <text text-anchor="middle" x="356.66" y="-107.44" font-family="Indie Flower" font-size="22.00">WK3</text> | ||||
| </g> | ||||
| <!-- csf->wk3 --> | ||||
| <g id="edge18" class="edge"> | ||||
| <title>csf->wk3</title> | ||||
| <path fill="none" stroke="blue" d="M485.49,-420.28C440.94,-324 369.25,-177.81 335.28,-115.28"/> | ||||
| <polygon fill="blue" stroke="blue" points="338.25,-113.41 330.36,-106.34 332.11,-116.78 338.25,-113.41"/> | ||||
| <path fill="none" stroke="blue" d="M594.49,-514.87C527.91,-395.2 422.72,-213.93 377.89,-142.98"/> | ||||
| <polygon fill="blue" stroke="blue" points="380.81,-141.04 372.48,-134.49 374.9,-144.81 380.81,-141.04"/> | ||||
| </g> | ||||
| <!-- eth --> | ||||
| <g id="node32" class="node"> | ||||
| <g id="node33" class="node"> | ||||
| <title>eth</title> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="392.47" cy="-56.11" rx="36.54" ry="22.76"/> | ||||
| <text text-anchor="middle" x="392.47" y="-50.51" font-family="Indie Flower" font-size="22.00">ETH</text> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="445.63" cy="-71.21" rx="45.92" ry="22.76"/> | ||||
| <text text-anchor="middle" x="445.63" y="-65.61" font-family="Indie Flower" font-size="22.00">ETH</text> | ||||
| </g> | ||||
| <!-- csf->eth --> | ||||
| <g id="edge52" class="edge"> | ||||
| <g id="edge53" class="edge"> | ||||
| <title>csf->eth</title> | ||||
| <path fill="none" stroke="#458b74" d="M501.66,-415.11C474.1,-312.13 428.15,-154.8 405.49,-87.94"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="408.76,-86.69 402.19,-78.38 402.14,-88.97 408.76,-86.69"/> | ||||
| <path fill="none" stroke="#458b74" d="M613.92,-506.78C567.75,-377.1 493.39,-179.62 461.13,-103.07"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="464.19,-101.33 457.05,-93.51 457.75,-104.08 464.19,-101.33"/> | ||||
| </g> | ||||
| <!-- xls2->csf --> | ||||
| <g id="edge24" class="edge"> | ||||
| <g id="edge25" class="edge"> | ||||
| <title>xls2->csf</title> | ||||
| <path fill="none" stroke="#458b74" d="M947.31,-507.23C872.79,-504.62 731.21,-504.14 632.3,-505.8"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="632.21,-502.31 622.27,-505.98 632.33,-509.3 632.21,-502.31"/> | ||||
| <path fill="none" stroke="#458b74" d="M1185.06,-623.49C1092.29,-620.86 914.8,-620.36 790.41,-622.01"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="790,-618.52 780.05,-622.16 790.1,-625.52 790,-618.52"/> | ||||
| </g> | ||||
| <!-- xls3->csf --> | ||||
| <g id="edge26" class="edge"> | ||||
| <g id="edge27" class="edge"> | ||||
| <title>xls3->csf</title> | ||||
| <path fill="none" stroke="#458b74" d="M940.26,-602.16C869.05,-583.17 729.27,-550.8 631.33,-530.2"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="631.89,-526.74 621.39,-528.12 630.46,-533.59 631.89,-526.74"/> | ||||
| <path fill="none" stroke="#458b74" d="M1177.26,-740.34C1088.44,-717.74 911.75,-677.82 788.14,-652"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="788.72,-648.54 778.22,-649.93 787.29,-655.4 788.72,-648.54"/> | ||||
| </g> | ||||
| <!-- xls4->csf --> | ||||
| <g id="edge28" class="edge"> | ||||
| <g id="edge29" class="edge"> | ||||
| <title>xls4->csf</title> | ||||
| <path fill="none" stroke="#458b74" d="M912.45,-691.74C847.68,-657.9 716.49,-594.96 624.46,-553.11"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="625.68,-549.82 615.13,-548.88 622.79,-556.19 625.68,-549.82"/> | ||||
| <path fill="none" stroke="#458b74" d="M1145.27,-852.8C1065.06,-812.24 897.14,-733.33 779.83,-680.54"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="780.97,-677.22 770.42,-676.31 778.1,-683.6 780.97,-677.22"/> | ||||
| </g> | ||||
| <!-- xls5->csf --> | ||||
| <g id="edge8" class="edge"> | ||||
| <title>xls5->csf</title> | ||||
| <path fill="none" stroke="blue" d="M863.35,-774.19C807.96,-726.96 693.45,-635.97 612.71,-574.48"/> | ||||
| <polygon fill="blue" stroke="blue" points="614.59,-571.51 604.52,-568.25 610.36,-577.09 614.59,-571.51"/> | ||||
| <path fill="none" stroke="blue" d="M1086.93,-958.13C1018.99,-901.87 869.63,-785.68 765.21,-707.2"/> | ||||
| <polygon fill="blue" stroke="blue" points="767.24,-704.35 757.14,-701.14 763.04,-709.94 767.24,-704.35"/> | ||||
| </g> | ||||
| <!-- xls8->csf --> | ||||
| <g id="edge10" class="edge"> | ||||
| <title>xls8->csf</title> | ||||
| <path fill="none" stroke="blue" d="M798.28,-845.47C755.53,-787.92 662.57,-671.8 596.63,-592.85"/> | ||||
| <polygon fill="blue" stroke="blue" points="599.04,-590.27 589.93,-584.85 593.67,-594.76 599.04,-590.27"/> | ||||
| <path fill="none" stroke="blue" d="M1006.92,-1048.56C954.36,-980.32 831.39,-831.03 745.21,-729.91"/> | ||||
| <polygon fill="blue" stroke="blue" points="747.71,-727.44 738.55,-722.11 742.38,-731.98 747.71,-727.44"/> | ||||
| </g> | ||||
| <!-- xlml->csf --> | ||||
| <g id="edge6" class="edge"> | ||||
| <title>xlml->csf</title> | ||||
| <path fill="none" stroke="blue" d="M707.67,-903.71C680.6,-837.59 618.76,-701.21 574.17,-608.06"/> | ||||
| <polygon fill="blue" stroke="blue" points="577.26,-606.4 569.77,-598.9 570.95,-609.43 577.26,-606.4"/> | ||||
| <path fill="none" stroke="blue" d="M895.02,-1124.15C861.21,-1046.24 777.16,-869.3 717.58,-749.15"/> | ||||
| <polygon fill="blue" stroke="blue" points="720.56,-747.28 712.98,-739.88 714.29,-750.39 720.56,-747.28"/> | ||||
| </g> | ||||
| <!-- xlsx->csf --> | ||||
| <g id="edge2" class="edge"> | ||||
| <title>xlsx->csf</title> | ||||
| <path fill="none" stroke="blue" d="M609.18,-937.47C598.77,-867.34 571.02,-719.19 549.78,-617.52"/> | ||||
| <polygon fill="blue" stroke="blue" points="553.16,-616.59 547.68,-607.52 546.31,-618.03 553.16,-616.59"/> | ||||
| <path fill="none" stroke="blue" d="M772.62,-1168.82C758.23,-1086.14 717.45,-892.41 687.38,-760.68"/> | ||||
| <polygon fill="blue" stroke="blue" points="690.79,-759.88 685.14,-750.91 683.96,-761.44 690.79,-759.88"/> | ||||
| </g> | ||||
| <!-- xlsb->csf --> | ||||
| <g id="edge4" class="edge"> | ||||
| <title>xlsb->csf</title> | ||||
| <path fill="none" stroke="blue" d="M513.06,-945.86C518.39,-875.15 524.03,-724.54 525.75,-620.69"/> | ||||
| <polygon fill="blue" stroke="blue" points="529.26,-620.53 525.91,-610.47 522.26,-620.42 529.26,-620.53"/> | ||||
| <path fill="none" stroke="blue" d="M652.08,-1181.89C656.02,-1098.06 658.36,-900.1 657.66,-764.98"/> | ||||
| <polygon fill="blue" stroke="blue" points="661.16,-764.94 657.6,-754.96 654.16,-764.98 661.16,-764.94"/> | ||||
| </g> | ||||
| <!-- nums->csf --> | ||||
| <g id="edge22" class="edge"> | ||||
| <title>nums->csf</title> | ||||
| <path fill="none" stroke="blue" d="M382.8,-938.12C406.12,-880.29 460.03,-723.53 494.07,-617.04"/> | ||||
| <polygon fill="blue" stroke="blue" points="497.49,-617.81 497.19,-607.22 490.82,-615.68 497.49,-617.81"/> | ||||
| <path fill="none" stroke="blue" d="M486.25,-1172.05C511.48,-1104.06 576.52,-898.79 617.6,-760.69"/> | ||||
| <polygon fill="blue" stroke="blue" points="621.02,-761.45 620.51,-750.87 614.31,-759.46 621.02,-761.45"/> | ||||
| </g> | ||||
| <!-- et --> | ||||
| <g id="node11" class="node"> | ||||
| <title>et</title> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="530.57" cy="-46.6" rx="35.21" ry="22.76"/> | ||||
| <text text-anchor="middle" x="530.57" y="-41" font-family="Indie Flower" font-size="22.00">ET</text> | ||||
| </g> | ||||
| <!-- et->csf --> | ||||
| <g id="edge24" class="edge"> | ||||
| <title>et->csf</title> | ||||
| <path fill="none" stroke="blue" d="M535.29,-69.02C549.82,-138.04 594.71,-351.14 624.65,-493.33"/> | ||||
| <polygon fill="blue" stroke="blue" points="621.3,-494.38 626.78,-503.44 628.15,-492.94 621.3,-494.38"/> | ||||
| </g> | ||||
| <!-- ods->csf --> | ||||
| <g id="edge12" class="edge"> | ||||
| <title>ods->csf</title> | ||||
| <path fill="none" stroke="blue" d="M276.57,-883.88C315.28,-832.69 407.35,-697.62 467.54,-605.05"/> | ||||
| <polygon fill="blue" stroke="blue" points="470.58,-606.81 473.09,-596.51 464.71,-603 470.58,-606.81"/> | ||||
| <path fill="none" stroke="blue" d="M349.62,-1106.26C393.24,-1045.17 508.55,-867.15 583.81,-746.34"/> | ||||
| <polygon fill="blue" stroke="blue" points="586.84,-748.08 589.15,-737.74 580.9,-744.39 586.84,-748.08"/> | ||||
| </g> | ||||
| <!-- fods->csf --> | ||||
| <g id="edge14" class="edge"> | ||||
| <title>fods->csf</title> | ||||
| <path fill="none" stroke="blue" d="M207.98,-820.71C258.64,-776.41 372.85,-667.38 449.09,-591.41"/> | ||||
| <polygon fill="blue" stroke="blue" points="451.75,-593.71 456.35,-584.17 446.8,-588.76 451.75,-593.71"/> | ||||
| <path fill="none" stroke="blue" d="M261.05,-1029.47C319.14,-975.63 463.88,-830.21 560.28,-729.95"/> | ||||
| <polygon fill="blue" stroke="blue" points="563.03,-732.15 567.43,-722.51 557.98,-727.3 563.03,-732.15"/> | ||||
| </g> | ||||
| <!-- uos --> | ||||
| <g id="node13" class="node"> | ||||
| <g id="node14" class="node"> | ||||
| <title>uos</title> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="474.39" cy="-40.17" rx="39.7" ry="22.76"/> | ||||
| <text text-anchor="middle" x="474.39" y="-34.57" font-family="Indie Flower" font-size="22.00">UOS</text> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="621.75" cy="-34.67" rx="49.49" ry="22.76"/> | ||||
| <text text-anchor="middle" x="621.75" y="-29.07" font-family="Indie Flower" font-size="22.00">UOS</text> | ||||
| </g> | ||||
| <!-- uos->csf --> | ||||
| <g id="edge16" class="edge"> | ||||
| <title>uos->csf</title> | ||||
| <path fill="none" stroke="blue" d="M476.76,-62.91C483.06,-123.25 500.52,-290.5 512.26,-402.87"/> | ||||
| <polygon fill="blue" stroke="blue" points="508.78,-403.3 513.3,-412.89 515.74,-402.58 508.78,-403.3"/> | ||||
| <path fill="none" stroke="blue" d="M622.95,-57.56C626.66,-127.99 638.11,-345.47 645.75,-490.57"/> | ||||
| <polygon fill="blue" stroke="blue" points="642.27,-491.09 646.29,-500.89 649.26,-490.72 642.27,-491.09"/> | ||||
| </g> | ||||
| <!-- html->csf --> | ||||
| <g id="edge50" class="edge"> | ||||
| <g id="edge51" class="edge"> | ||||
| <title>html->csf</title> | ||||
| <path fill="none" stroke="#458b74" d="M159.46,-738.34C223.1,-702.82 347.81,-627.46 433.41,-573.32"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="435.51,-576.13 442.09,-567.82 431.77,-570.22 435.51,-576.13"/> | ||||
| <path fill="none" stroke="#458b74" d="M200.04,-926.05C276.57,-879.92 433.04,-779.26 540.46,-707.62"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="542.7,-710.33 549.08,-701.87 538.82,-704.51 542.7,-710.33"/> | ||||
| </g> | ||||
| <!-- csv->csf --> | ||||
| <g id="edge44" class="edge"> | ||||
| <g id="edge45" class="edge"> | ||||
| <title>csv->csf</title> | ||||
| <path fill="none" stroke="#458b74" d="M112.7,-669.72C177.5,-648.8 324.08,-594.55 423.47,-555.34"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="424.92,-558.53 432.93,-551.6 422.35,-552.02 424.92,-558.53"/> | ||||
| <path fill="none" stroke="#458b74" d="M141.91,-841.87C220.72,-812.99 404.09,-738.37 528.35,-685.32"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="529.75,-688.53 537.57,-681.38 527,-682.1 529.75,-688.53"/> | ||||
| </g> | ||||
| <!-- txt->csf --> | ||||
| <g id="edge46" class="edge"> | ||||
| <g id="edge47" class="edge"> | ||||
| <title>txt->csf</title> | ||||
| <path fill="none" stroke="#458b74" d="M110.5,-579.8C185.7,-570.71 321.69,-550.18 417.04,-533.85"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="417.75,-537.28 427.01,-532.13 416.56,-530.38 417.75,-537.28"/> | ||||
| <path fill="none" stroke="#458b74" d="M137.37,-729.61C230.62,-714.55 400.06,-683.04 519.19,-658.93"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="520.01,-662.34 529.12,-656.92 518.62,-655.48 520.01,-662.34"/> | ||||
| </g> | ||||
| <!-- dbf->csf --> | ||||
| <g id="edge48" class="edge"> | ||||
| <g id="edge49" class="edge"> | ||||
| <title>dbf->csf</title> | ||||
| <path fill="none" stroke="#458b74" d="M92.04,-485.49C163.38,-493.37 311.94,-504.33 414.68,-509.78"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="414.62,-513.28 424.79,-510.3 414.98,-506.29 414.62,-513.28"/> | ||||
| <path fill="none" stroke="#458b74" d="M110.83,-614.63C200.07,-620.36 386.23,-626.86 515.33,-629.25"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="515.63,-632.75 525.69,-629.43 515.75,-625.75 515.63,-632.75"/> | ||||
| </g> | ||||
| <!-- dif->csf --> | ||||
| <g id="edge39" class="edge"> | ||||
| <g id="edge40" class="edge"> | ||||
| <title>dif->csf</title> | ||||
| <path fill="none" stroke="#458b74" d="M93.7,-406.64C157.66,-426.19 311.34,-465.78 416.51,-490.49"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="416,-493.96 426.53,-492.83 417.59,-487.15 416,-493.96"/> | ||||
| <path fill="none" stroke="#458b74" d="M107.81,-518.99C188.18,-538.96 383.67,-580.04 517.32,-605.75"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="516.76,-609.21 527.24,-607.66 518.08,-602.34 516.76,-609.21"/> | ||||
| </g> | ||||
| <!-- slk->csf --> | ||||
| <g id="edge31" class="edge"> | ||||
| <g id="edge32" class="edge"> | ||||
| <title>slk->csf</title> | ||||
| <path fill="none" stroke="#458b74" d="M118.64,-335.01C178.71,-365.35 322.62,-430.3 421.65,-472.47"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="420.52,-475.79 431.09,-476.48 423.26,-469.35 420.52,-475.79"/> | ||||
| <path fill="none" stroke="#458b74" d="M133.05,-429.77C208.72,-462.72 395.14,-535.89 522.9,-583.54"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="521.79,-586.86 532.38,-587.07 524.23,-580.3 521.79,-586.86"/> | ||||
| </g> | ||||
| <!-- prn->csf --> | ||||
| <g id="edge42" class="edge"> | ||||
| <g id="edge43" class="edge"> | ||||
| <title>prn->csf</title> | ||||
| <path fill="none" stroke="#458b74" d="M154.84,-261.78C206.46,-301.46 339.28,-393.89 430.59,-454.55"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="428.75,-457.53 439.02,-460.13 432.62,-451.69 428.75,-457.53"/> | ||||
| <path fill="none" stroke="#458b74" d="M172.54,-336.15C237.61,-380.33 413.03,-489.21 532.89,-560.76"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="531.4,-563.95 541.79,-566.06 534.99,-557.93 531.4,-563.95"/> | ||||
| </g> | ||||
| <!-- rtf->csf --> | ||||
| <g id="edge40" class="edge"> | ||||
| <g id="edge41" class="edge"> | ||||
| <title>rtf->csf</title> | ||||
| <path fill="none" stroke="#458b74" d="M202.98,-198.44C245.23,-245.28 361.45,-361.64 441.72,-438.59"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="439.73,-441.53 449.37,-445.91 444.57,-436.47 439.73,-441.53"/> | ||||
| <path fill="none" stroke="#458b74" d="M227.81,-254.01C281.6,-306.77 438.93,-447.83 546.37,-540.81"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="544.16,-543.53 554.02,-547.42 548.74,-538.23 544.16,-543.53"/> | ||||
| </g> | ||||
| <!-- wk1->csf --> | ||||
| <g id="edge33" class="edge"> | ||||
| <g id="edge34" class="edge"> | ||||
| <title>wk1->csf</title> | ||||
| <path fill="none" stroke="#458b74" d="M259.28,-147.61C292.3,-199.97 388.7,-336.2 455.51,-426.34"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="452.7,-428.43 461.47,-434.37 458.32,-424.26 452.7,-428.43"/> | ||||
| <path fill="none" stroke="#458b74" d="M292.35,-188.4C335.53,-247.61 470.02,-414.73 562.01,-524.97"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="559.46,-527.38 568.55,-532.81 564.83,-522.89 559.46,-527.38"/> | ||||
| </g> | ||||
| <!-- wksl --> | ||||
| <g id="node23" class="node"> | ||||
| <g id="node24" class="node"> | ||||
| <title>wksl</title> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="567" cy="-39.6" rx="45.92" ry="39.7"/> | ||||
| <text text-anchor="middle" x="567" y="-46" font-family="Indie Flower" font-size="22.00">WKS</text> | ||||
| <text text-anchor="middle" x="567" y="-22" font-family="Indie Flower" font-size="22.00">Lotus</text> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="735.44" cy="-39.6" rx="57.05" ry="39.7"/> | ||||
| <text text-anchor="middle" x="735.44" y="-46" font-family="Indie Flower" font-size="22.00">WKS</text> | ||||
| <text text-anchor="middle" x="735.44" y="-22" font-family="Indie Flower" font-size="22.00">Lotus</text> | ||||
| </g> | ||||
| <!-- wksl->csf --> | ||||
| <g id="edge37" class="edge"> | ||||
| <g id="edge38" class="edge"> | ||||
| <title>wksl->csf</title> | ||||
| <path fill="none" stroke="#458b74" d="M563.34,-79.43C556.84,-150.09 543.09,-299.61 533.6,-402.83"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="530.1,-402.7 532.67,-412.98 537.07,-403.34 530.1,-402.7"/> | ||||
| <path fill="none" stroke="#458b74" d="M729.9,-79.11C718.26,-162.16 690.77,-358.21 672.02,-492.01"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="668.55,-491.54 670.62,-501.93 675.48,-492.52 668.55,-491.54"/> | ||||
| </g> | ||||
| <!-- wk3->csf --> | ||||
| <g id="edge17" class="edge"> | ||||
| <title>wk3->csf</title> | ||||
| <path fill="none" stroke="blue" d="M323.83,-107.46C347.18,-163.91 419.76,-315.36 470.73,-415.98"/> | ||||
| <polygon fill="blue" stroke="blue" points="467.64,-417.62 475.29,-424.95 473.88,-414.45 467.64,-417.62"/> | ||||
| <path fill="none" stroke="blue" d="M366.15,-135.29C398.57,-199.35 505.69,-387.4 579.47,-511.73"/> | ||||
| <polygon fill="blue" stroke="blue" points="576.6,-513.76 584.72,-520.56 582.62,-510.18 576.6,-513.76"/> | ||||
| </g> | ||||
| <!-- wk4 --> | ||||
| <g id="node25" class="node"> | ||||
| <g id="node26" class="node"> | ||||
| <title>wk4</title> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="655.24" cy="-56.25" rx="36.54" ry="22.76"/> | ||||
| <text text-anchor="middle" x="655.24" y="-50.65" font-family="Indie Flower" font-size="22.00">WK4</text> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="841.42" cy="-64.53" rx="44.6" ry="22.76"/> | ||||
| <text text-anchor="middle" x="841.42" y="-58.93" font-family="Indie Flower" font-size="22.00">WK4</text> | ||||
| </g> | ||||
| <!-- wk4->csf --> | ||||
| <g id="edge19" class="edge"> | ||||
| <title>wk4->csf</title> | ||||
| <path fill="none" stroke="blue" d="M648.71,-78.83C631.69,-137.71 585.11,-298.83 553.84,-406.99"/> | ||||
| <polygon fill="blue" stroke="blue" points="550.47,-406.05 551.06,-416.63 557.2,-408 550.47,-406.05"/> | ||||
| <path fill="none" stroke="blue" d="M833.91,-86.96C811.3,-154.55 742.56,-360.05 696.61,-497.37"/> | ||||
| <polygon fill="blue" stroke="blue" points="693.2,-496.55 693.35,-507.14 699.84,-498.77 693.2,-496.55"/> | ||||
| </g> | ||||
| <!-- 123 --> | ||||
| <g id="node26" class="node"> | ||||
| <g id="node27" class="node"> | ||||
| <title>123</title> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="725.42" cy="-82.72" rx="31.23" ry="22.76"/> | ||||
| <text text-anchor="middle" x="725.42" y="-77.12" font-family="Indie Flower" font-size="22.00">123</text> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="923.59" cy="-99.07" rx="37.45" ry="22.76"/> | ||||
| <text text-anchor="middle" x="923.59" y="-93.47" font-family="Indie Flower" font-size="22.00">123</text> | ||||
| </g> | ||||
| <!-- 123->csf --> | ||||
| <g id="edge20" class="edge"> | ||||
| <title>123->csf</title> | ||||
| <path fill="none" stroke="blue" d="M715.27,-104.28C689.09,-159.93 617.94,-311.12 570.09,-412.81"/> | ||||
| <polygon fill="blue" stroke="blue" points="566.91,-411.34 565.82,-421.88 573.25,-414.32 566.91,-411.34"/> | ||||
| <path fill="none" stroke="blue" d="M912.48,-120.79C879.65,-184.93 781.3,-377.1 715.55,-505.56"/> | ||||
| <polygon fill="blue" stroke="blue" points="712.31,-504.2 710.87,-514.7 718.54,-507.39 712.31,-504.2"/> | ||||
| </g> | ||||
| <!-- wksm --> | ||||
| <g id="node27" class="node"> | ||||
| <g id="node28" class="node"> | ||||
| <title>wksm</title> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="801.54" cy="-127.65" rx="50.41" ry="39.7"/> | ||||
| <text text-anchor="middle" x="801.54" y="-134.05" font-family="Indie Flower" font-size="22.00">WKS</text> | ||||
| <text text-anchor="middle" x="801.54" y="-110.05" font-family="Indie Flower" font-size="22.00">Works</text> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="1014.43" cy="-156.49" rx="62.87" ry="39.7"/> | ||||
| <text text-anchor="middle" x="1014.43" y="-162.89" font-family="Indie Flower" font-size="22.00">WKS</text> | ||||
| <text text-anchor="middle" x="1014.43" y="-138.89" font-family="Indie Flower" font-size="22.00">Works</text> | ||||
| </g> | ||||
| <!-- wksm->csf --> | ||||
| <g id="edge38" class="edge"> | ||||
| <g id="edge39" class="edge"> | ||||
| <title>wksm->csf</title> | ||||
| <path fill="none" stroke="#458b74" d="M776.63,-162.06C734.46,-220.3 647.76,-340.08 587.68,-423.07"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="584.8,-421.08 581.77,-431.23 590.47,-425.19 584.8,-421.08"/> | ||||
| <path fill="none" stroke="#458b74" d="M986.97,-192.3C934.3,-260.97 817.2,-413.67 736.66,-518.69"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="733.75,-516.73 730.44,-526.8 739.3,-520.99 733.75,-516.73"/> | ||||
| </g> | ||||
| <!-- xlr --> | ||||
| <g id="node28" class="node"> | ||||
| <g id="node29" class="node"> | ||||
| <title>xlr</title> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="870.41" cy="-188.5" rx="34.8" ry="22.76"/> | ||||
| <text text-anchor="middle" x="870.41" y="-182.9" font-family="Indie Flower" font-size="22.00">XLR</text> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="1096.74" cy="-233.01" rx="42.35" ry="22.76"/> | ||||
| <text text-anchor="middle" x="1096.74" y="-227.41" font-family="Indie Flower" font-size="22.00">XLR</text> | ||||
| </g> | ||||
| <!-- xlr->csf --> | ||||
| <g id="edge35" class="edge"> | ||||
| <g id="edge36" class="edge"> | ||||
| <title>xlr->csf</title> | ||||
| <path fill="none" stroke="#458b74" d="M850.52,-207.03C803.74,-250.61 684.62,-361.59 603.85,-436.83"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="601.08,-434.62 596.15,-444 605.86,-439.74 601.08,-434.62"/> | ||||
| <path fill="none" stroke="#458b74" d="M1074.74,-252.59C1017.52,-303.49 861.23,-442.54 755.83,-536.3"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="753.48,-533.71 748.34,-542.97 758.13,-538.94 753.48,-533.71"/> | ||||
| </g> | ||||
| <!-- wq1 --> | ||||
| <g id="node29" class="node"> | ||||
| <g id="node30" class="node"> | ||||
| <title>wq1</title> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="919.38" cy="-250.79" rx="37.45" ry="22.76"/> | ||||
| <text text-anchor="middle" x="919.38" y="-245.19" font-family="Indie Flower" font-size="22.00">WQ1</text> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="1154.27" cy="-309.22" rx="45.92" ry="22.76"/> | ||||
| <text text-anchor="middle" x="1154.27" y="-303.62" font-family="Indie Flower" font-size="22.00">WQ1</text> | ||||
| </g> | ||||
| <!-- wq1->csf --> | ||||
| <g id="edge36" class="edge"> | ||||
| <g id="edge37" class="edge"> | ||||
| <title>wq1->csf</title> | ||||
| <path fill="none" stroke="#458b74" d="M894.02,-267.5C838.76,-303.91 705.19,-391.93 614.49,-451.7"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="612.55,-448.78 606.13,-457.21 616.4,-454.63 612.55,-448.78"/> | ||||
| <path fill="none" stroke="#458b74" d="M1125.88,-327.27C1058.55,-370.06 886.04,-479.69 769.09,-554.02"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="766.97,-551.21 760.41,-559.53 770.73,-557.12 766.97,-551.21"/> | ||||
| </g> | ||||
| <!-- wq2 --> | ||||
| <g id="node30" class="node"> | ||||
| <g id="node31" class="node"> | ||||
| <title>wq2</title> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="959.82" cy="-326.2" rx="41.02" ry="39.7"/> | ||||
| <text text-anchor="middle" x="959.82" y="-332.6" font-family="Indie Flower" font-size="22.00">WQ2</text> | ||||
| <text text-anchor="middle" x="959.82" y="-308.6" font-family="Indie Flower" font-size="22.00">WB*</text> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="1201.86" cy="-400.84" rx="50.41" ry="39.7"/> | ||||
| <text text-anchor="middle" x="1201.86" y="-407.24" font-family="Indie Flower" font-size="22.00">WQ2</text> | ||||
| <text text-anchor="middle" x="1201.86" y="-383.24" font-family="Indie Flower" font-size="22.00">WB*</text> | ||||
| </g> | ||||
| <!-- wq2->csf --> | ||||
| <g id="edge11" class="edge"> | ||||
| <title>wq2->csf</title> | ||||
| <path fill="none" stroke="blue" d="M922.26,-342.17C856.65,-370.05 719.17,-428.48 624.14,-468.86"/> | ||||
| <polygon fill="blue" stroke="blue" points="622.63,-465.7 614.79,-472.83 625.37,-472.14 622.63,-465.7"/> | ||||
| <path fill="none" stroke="blue" d="M1156.95,-419.41C1075.47,-453.1 900.6,-525.41 779.9,-575.32"/> | ||||
| <polygon fill="blue" stroke="blue" points="778.49,-572.12 770.58,-579.18 781.16,-578.59 778.49,-572.12"/> | ||||
| </g> | ||||
| <!-- qpw --> | ||||
| <g id="node31" class="node"> | ||||
| <g id="node32" class="node"> | ||||
| <title>qpw</title> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="987.11" cy="-412.49" rx="42.35" ry="22.76"/> | ||||
| <text text-anchor="middle" x="987.11" y="-406.89" font-family="Indie Flower" font-size="22.00">QPW</text> | ||||
| <ellipse fill="cyan" stroke="cyan" cx="1234.36" cy="-506.22" rx="53.07" ry="22.76"/> | ||||
| <text text-anchor="middle" x="1234.36" y="-500.62" font-family="Indie Flower" font-size="22.00">QPW</text> | ||||
| </g> | ||||
| <!-- qpw->csf --> | ||||
| <g id="edge21" class="edge"> | ||||
| <title>qpw->csf</title> | ||||
| <path fill="none" stroke="blue" d="M947.59,-420.94C877.99,-435.82 731.36,-467.17 630.19,-488.8"/> | ||||
| <polygon fill="blue" stroke="blue" points="629.29,-485.41 620.24,-490.93 630.75,-492.26 629.29,-485.41"/> | ||||
| <path fill="none" stroke="blue" d="M1186.29,-516.27C1099.79,-534.36 915.04,-573 787.43,-599.69"/> | ||||
| <polygon fill="blue" stroke="blue" points="786.65,-596.28 777.58,-601.75 788.08,-603.13 786.65,-596.28"/> | ||||
| </g> | ||||
| <!-- eth->csf --> | ||||
| <g id="edge53" class="edge"> | ||||
| <g id="edge54" class="edge"> | ||||
| <title>eth->csf</title> | ||||
| <path fill="none" stroke="#458b74" d="M395.8,-78.94C409.08,-138.35 454.86,-300.58 487.94,-408.62"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="484.62,-409.72 490.9,-418.25 491.31,-407.67 484.62,-409.72"/> | ||||
| <path fill="none" stroke="#458b74" d="M451.1,-94.02C472.2,-161.82 547.11,-365.74 599.55,-501"/> | ||||
| <polygon fill="#458b74" stroke="#458b74" points="596.4,-502.56 603.28,-510.61 602.92,-500.03 596.4,-502.56"/> | ||||
| </g> | ||||
| </g> | ||||
| </svg> | ||||
|  | ||||
| Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB | 
| Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.2 MiB | 
| Before Width: | Height: | Size: 234 KiB After Width: | Height: | Size: 235 KiB |