TiddlyWiki created by Jeremy Ruston, (jeremy [at] jermolene [dot] com)
Copyright © Jeremy Ruston 2004-2007
Copyright © UnaMesa Association 2007-2013
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or other
materials provided with the distribution.
Neither the name of the UnaMesa Association nor the names of its contributors may be
used to endorse or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.
<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="366 150 58 58" width="22pt" height="22pt"><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><g><title>Layer 1</title><path d="M 414.76236 158.98764 C 403.77887 148.0041 385.97113 148.0041 374.98764 158.98764 C 364.0041 169.97113 364.0041 187.77887 374.98764 198.76236 C 385.97113 209.7459 403.77887 209.7459 414.76236 198.76236 C 425.7459 187.77887 425.7459 169.97113 414.76236 158.98764 M 385.3967 165.32954 L 385.3967 165.32954 L 394.77674 174.7096 L 404.3533 165.13303 C 405.53068 163.95566 407.4396 163.95566 408.61697 165.13303 C 409.79434 166.31041 409.79434 168.21932 408.61697 169.39669 L 399.0404 178.97325 L 408.42046 188.35331 C 409.59783 189.53068 409.59783 191.43959 408.42046 192.61697 L 408.42046 192.61697 C 407.24308 193.79434 405.33417 193.79434 404.1568 192.61697 L 394.77675 183.23692 L 385.5932 192.42046 C 384.41583 193.59783 382.50692 193.59783 381.32954 192.42046 L 381.32954 192.42046 C 380.15217 191.24308 380.15217 189.33417 381.32954 188.1568 C 381.32954 188.1568 381.32954 188.1568 381.32954 188.1568 L 381.32954 188.1568 L 381.32954 188.1568 L 390.51309 178.97326 L 381.13303 169.5932 C 379.95566 168.41583 379.95566 166.50692 381.13303 165.32954 L 381.13303 165.32954 C 382.3104 164.15217 384.21932 164.15217 385.3967 165.32954 C 385.3967 165.32954 385.3967 165.32954 385.3967 165.32954 Z" fill="#ccc"/></g></g></svg>
<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="222 150 56 56" width="22pt" height="22pt"><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><g><path d="M 249.56668 185.88827 L 267.06757 203.38916 C 269.26427 205.58586 272.82582 205.58586 275.02252 203.38916 L 275.02252 203.38916 C 277.21922 201.19246 277.21922 197.63091 275.02252 195.43421 L 257.52163 177.93332 L 275.38916 160.06579 C 277.58586 157.86909 277.58586 154.30754 275.38916 152.11084 C 273.19246 149.91414 269.63091 149.91414 267.43421 152.11084 L 249.56668 169.97837 L 232.06579 152.47748 L 232.06579 152.47748 C 232.06579 152.47748 232.06579 152.47748 232.06579 152.47748 C 229.86909 150.28078 226.30754 150.28078 224.11084 152.47748 L 224.11084 152.47748 C 221.91414 154.674175 221.91414 158.23573 224.11084 160.43243 L 241.61173 177.93332 L 224.47748 195.06757 L 224.47748 195.06757 L 224.47748 195.06757 C 224.47748 195.06757 224.47748 195.06757 224.47748 195.06757 C 222.28078 197.26427 222.28078 200.82583 224.47748 203.02252 L 224.47748 203.02252 C 226.67418 205.21922 230.23573 205.21922 232.43243 203.02252 Z" fill="#ccc"/></g></g></svg>
<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="303 155 39 50" width="17pt" height="22pt"><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><g><title>Layer 1</title><path d="M 333 164.25 L 333 157.25 C 333 156.14543 332.10457 155.25 331 155.25 L 314.75 155.25 C 314.75 155.25 314.75 155.25 314.75 155.25 C 313.64543 155.25 312.75 156.14543 312.75 157.25 L 312.75 164.25 L 303.75 164.25 L 303.75 168.75 L 306 168.75 L 306 201.75 L 306 201.75 L 306 201.75 C 306 203.40685 307.34315 204.75 309 204.75 L 336.75 204.75 C 338.40685 204.75 339.75 203.40685 339.75 201.75 L 339.75 168.75 L 342 168.75 L 342 164.25 Z M 317.25 160.75 L 317.25 160.75 C 317.25 160.19772 317.69772 159.75 318.25 159.75 C 318.25 159.75 318.25 159.75 318.25 159.75 L 327.5 159.75 C 328.05228 159.75 328.5 160.19772 328.5 160.75 L 328.5 164.25 L 317.25 164.25 L 317.25 160.75 Z M 310.5 168.75 L 312.75 168.75 L 312.75 200.25 L 310.5 200.25 Z M 317.25 168.75 L 319.5 168.75 L 319.5 200.25 L 317.25 200.25 Z M 324 168.75 L 326.25 168.75 L 326.25 200.25 L 324 200.25 Z M 330.75 168.75 L 333 168.75 L 333 200.25 L 330.75 200.25 Z" fill="#ccc"/></g></g></svg>
<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="434 150 68 55" width="22pt" height="18pt"><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><g><path d="M 438.49266 178.00797 L 439.00744 177.49319 C 441.35054 175.15008 445.14946 175.15004 447.49262 177.49309 L 452.50734 182.50757 C 454.8505 184.85063 458.6494 184.85058 460.99252 182.50748 L 488.50747 154.99255 C 490.85058 152.64944 494.6495 152.6494 496.99266 154.99246 L 497.50722 155.506995 C 499.8504 157.85009 499.8505 161.64908 497.5074 163.99228 C 497.50738 163.99229 497.50736 163.99231 497.50734 163.99233 L 460.9926 200.5077 C 458.64947 202.85087 454.85048 202.8509 452.50732 200.50778 C 452.5073 200.50777 452.5073 200.50777 452.5073 200.50776 L 438.49268 186.49327 C 436.14952 184.15013 436.1495 180.35114 438.49264 178.00799 C 438.49265 178.00798 438.49265 178.00797 438.49266 178.00797 Z" fill="#ccc"/></g></g></svg>
<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="244 193 20 22" width="20pt" height="22pt"><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><g><title>Body</title><path d="M 257.33334 196.80951 L 245.90476 207.2857 L 244 212.0476 L 248.7619 210.14284 L 260.19048 199.66665 Z M 259.2381 194.90475 L 258.28566 195.85716 L 261.14284 198.71428 L 262.09522 197.76187 Z M 261.14286 193 L 260.19042 193.95241 L 263.04762 196.80953 L 264 195.85714 Z M 244 213.72882 C 244 213.72882 247.4281 215.43353 250.8572 213.7288 C 254.28599 212.02405 261.14284 214.86531 261.14284 214.86531 L 261.14284 213.72884 C 261.14284 213.72884 254.28577 210.88755 250.8572 212.5923 C 247.42858 214.29712 244 212.59228 244 212.59228 Z" fill="#ccc"/></g></g></svg>
<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="294 150 58 58" width="22pt" height="22pt"><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><g><path d="M 342.76236 158.98764 C 331.77887 148.0041 313.97113 148.0041 302.98764 158.98764 C 292.0041 169.97113 292.0041 187.77887 302.98764 198.76236 C 313.97113 209.7459 331.77887 209.7459 342.76236 198.76236 C 353.7459 187.77887 353.7459 169.97113 342.76236 158.98764 M 326.5425 157.5 L 326.5425 157.5 C 327.72545 157.5 328.72201 157.91022 329.5337 158.73088 C 330.34465 159.55157 330.75 160.54402 330.75 161.7075 C 330.75 162.87172 330.33979 163.86316 329.51911 164.68385 C 328.69842 165.5045 327.70674 165.91501 326.5425 165.91501 C 325.39801 165.91501 324.4153 165.5045 323.5946 164.68385 C 322.77393 163.86316 322.36372 162.87172 322.36372 161.7075 C 322.36372 160.54402 322.76906 159.55157 323.58 158.73088 C 324.39171 157.91022 325.3793 157.5 326.5425 157.5 Z M 327.80211 190.47259 C 324.91945 195.49132 321.85778 198 318.61462 198 C 317.37452 198 316.38691 197.65158 315.65186 196.9555 C 314.9176 196.25866 314.54943 195.37617 314.54943 194.30782 C 314.54943 193.60202 314.71223 192.70572 315.03629 191.61813 L 319.0151 177.93651 C 319.39685 176.61922 319.58735 175.62754 319.58735 174.95991 C 319.58735 174.53996 319.40582 174.16692 319.04356 173.84286 C 318.68052 173.51905 318.18469 173.35701 317.55527 173.35701 C 317.26861 173.35701 316.92506 173.36677 316.5246 173.38548 L 316.89661 172.2407 L 326.59967 170.66627 L 328.31744 170.66627 L 322.44986 191.01638 C 322.12503 192.18064 321.963 192.94337 321.963 193.30666 C 321.963 193.51588 322.04862 193.71121 322.2204 193.89273 C 322.39218 194.07425 322.5737 194.16554 322.7642 194.16477 C 323.08903 194.16554 323.4131 194.02221 323.73792 193.73559 C 324.59605 193.02976 325.6267 191.75142 326.82838 189.90008 Z" fill="#ccc"/></g></g></svg>
Your browser only supports manual saving.
To save your modified wiki, right click on the download link below and select "Download file" or "Save file", and then choose the folder and filename.
//You can marginally speed things up by clicking the link with the control key (Windows) or the options/alt key (Mac OS X). You will not be prompted for the folder or filename, but your browser is likely to give it an unrecognisable name -- you may need to rename the file to include an `.html` extension before you can do anything useful with it.//
On smartphones that do not allow files to be downloaded you can instead bookmark the link, and then sync your bookmarks to a desktop computer from where the wiki can be saved normally.
You can edit this wiki and save your changes. You are strongly advised to verify that saving is working properly before trusting ~TiddlyWiki with your data.
The following methods of saving changes are available:
* Using Firefox's built-in file system access
* Uploading to a simple server script
* Using HTML5's data URI and download attribute
[x] Don't show this message again
This ~TiddlyWiki is empty.
You can create and edit tiddlers, but before you use ~TiddlyWiki in earnest it is strongly advised that you verify that you can save and retrieve your changes.
~TiddlyWiki5 is currently a preliminary alpha release. Visit http://five.tiddlywiki.com/ for the latest information on how to use it.
Your changes to this wiki need to be saved as a ~TiddlyWiki HTML file.
!!! Desktop browsers
# Select ''Save As'' from the ''File'' menu
# Choose a filename and location
#* Some browsers also require you to explicitly specify the file saving format as ''Webpage, HTML only'' or similar
# Close this tab
!!! Smartphone browsers
# Create a bookmark to this page
#* If you've got iCloud or Google Sync set up then the bookmark will automatically sync to your desktop where you can open it and save it as above
# Close this tab
//If you open the bookmark again in Mobile Safari you will see this message again. If you want to go ahead and use the file, just click the ''close'' button below//
\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline
\define border-radius(radius)
```
-webkit-border-radius: $radius$;
-moz-border-radius: $radius$;
border-radius: $radius$;
```
\end
\define box-shadow(shadow)
```
-webkit-box-shadow: $shadow$;
-moz-box-shadow: $shadow$;
box-shadow: $shadow$;
```
\end
{{$:/core/styles/reset}}
html {
font-family: "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
}
body {
font-size: {{$:/core/styles/metrics##fontsize}};
line-height: {{$:/core/styles/metrics##lineheight}};
background-color: {{$:/core/styles/colourmappings##pagebackground}}
}
code, pre {
padding: 0 3px 2px;
<<border-radius 3px>>
}
code {
padding: 1px 2px;
color: #d14;
background-color: #f7f7f9;
border: 1px solid #e1e1e8;
}
pre {
display: block;
padding: 1em;
margin: 0 0 1em;
word-break: break-all;
word-wrap: break-word;
white-space: pre;
white-space: pre-wrap;
background-color: #f5f5f5;
border: 1px solid #ccc;
}
table {
border: 1px solid #ddd;
width: 100%;
}
table th, table td {
text-align: left;
padding: 0 0.5em 0 0.5em;
border-top: 1px solid #ddd;
border-left: 1px solid #ddd;
}
a.tw-tiddlylink {
text-decoration: none;
font-style: normal;
font-weight: normal;
color: {{$:/core/styles/colourmappings##linkforeground}};
}
.sidebar-header a.tw-tiddlylink {
color: #69699B;
}
a.tw-tiddlylink:hover {
text-decoration: underline;
}
a.tw-tiddlylink-resolves {
font-style: normal;
font-weight: bold;
}
a.tw-tiddlylink-missing {
font-style: italic;
}
.btn-invisible {
padding: 0;
margin: 0;
background: none;
border: none;
}
.tw-tags-wrapper {
margin: 0.25em 0 1em 0;
}
.tw-tag-label {
display: inline-block;
padding: 2px 4px;
font-size: 11.844px;
font-weight: bold;
line-height: 14px;
color: #ffffff;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.44);
white-space: nowrap;
vertical-align: baseline;
background-color: #999999;
border: 1px solid rgba(0,0,0,0.0);
<<border-radius 3px>>
<<box-shadow "inset 1px 1px 0 rgba(255,255,255,0.22)">>
}
.tw-tag-label:hover {
<<box-shadow "inset 0px 2em 0 rgba(0,0,0,0.22)">>
}
.edit-header {
}
.sidebar-header {
position: fixed;
top: 0;
left: 0;
bottom: 0;
width: {{$:/core/styles/metrics##sidebarwidth}};
overflow-y: auto;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
padding: 4em 0em 2em 2em;
margin: 0;
text-shadow: 0 1px 0 rgba(255,255,255, 0.8);
}
@media print {
.sidebar-header {
display: none;
}}
.tw-menu-list-item {
white-space: nowrap;
}
.story-river {
margin-left: {{$:/core/styles/metrics##sidebarwidth}};
padding: 2em;
}
@media print {
.story-river {
margin-left: 1em;
}}
.tw-tiddler-frame {
position: relative;
padding: 3em;
margin-bottom: 2em;
background-color: {{$:/core/styles/colourmappings##tiddlerbackground}};
max-width: 50em;
<<box-shadow "5px 5px 5px rgba(0, 0, 0, 0.1)">>
}
.title {
font-weight: bold;
font-size: 33px;
line-height: 40px;
color: #182955;
}
.tw-tiddler-missing .title {
font-style: italic;
font-weight: normal;
}
.tw-tiddler-frame .tw-tiddler-controls {
float: right;
}
.tw-tiddler-controls .tw-button {
margin: 0 0 0 0.5em;
vertical-align: middle;
}
.tw-tiddler-help {
color: #999;
margin-top: 1em;
}
.tw-tiddler-help a.tw-tiddlylink {
color: #888888;
}
.tw-drop-down {
min-width: 20em;
border: 1px solid {{$:/core/styles/colourmappings##dropdownborder}};
background-color: {{$:/core/styles/colourmappings##dropdownbackground}};
<<border-radius 4px>>
<<box-shadow "2px 2px 10px rgba(0, 0, 0, 0.5)">>
padding: 0.5em 0em 0.5em 0em;
margin: 0.25em 0 0 0;
white-space: nowrap;
}
.tw-drop-down a {
display: block;
padding: 0em 1em 0em 1em;
}
.tw-drop-down a:hover {
color: {{$:/core/styles/colourmappings##linkbackground}};
background-color: {{$:/core/styles/colourmappings##linkforeground}};
text-decoration: none;
}
.modal-backdrop {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1000;
background-color: #000;
}
.modal {
position: fixed;
top: 50%;
left: 50%;
z-index: 1100;
width: 560px;
margin: -250px 0 0 -280px;
background-color: #fff;
border: 1px solid #999;
border: 1px solid rgba(0,0,0,.3);
<<border-radius 6px>>
<<box-shadow "0 3px 7px rgba(0,0,0,0.3)">>
}
.modal-header {
padding: 9px 15px;
border-bottom: 1px solid #eee;
}
.modal-header h3 {
margin: 0;
line-height: 30px;
}
.modal-body {
overflow-y: auto;
max-height: 400px;
padding: 15px;
}
.modal-footer {
padding: 14px 15px 15px;
margin-bottom: 0;
text-align: right;
background-color: #f5f5f5;
border-top: 1px solid #ddd;
<<border-radius "0 0 6px 6px">>
<<box-shadow "inset 0 1px 0 #fff">>;
}
.tw-tab-set {
}
.tw-tab-buttons {
font-size: 0.85em;
line-height: 100%;
margin-bottom: -1px;
}
.tw-tab-buttons button {
color: #666;
background-color: #ccc;
border-left: 1px solid #aaa;
border-top: 1px solid #aaa;
border-right: 1px solid #aaa;
border-bottom: 1px solid #aaa;
margin-left: 0.25em;
margin-right: 0.25em;
}
.tw-tab-buttons button.tw-tab-selected {
background-color: #ececec;
border-bottom: 1px solid #ececec;
}
.tw-tab-contents {
border-top: 1px solid #aaa;
padding: 1em;
}
.tw-search-results {
padding: 1em;
}
.tw-drop-down .tw-tab-buttons button {
background-color: #ececec;
}
.tw-drop-down .tw-tab-buttons button.tw-tab-selected {
background-color: #fff;
border-bottom: 1px solid #fff;
}
.tw-drop-down .tw-tab-contents a {
padding: 0 0.5em 0 0.5em;
}
.tw-edit-texteditor input, .tw-edit-texteditor textarea {
width: 100%;
padding: 0.2em 0.2em 0.2em 0.2em;
border: 1px solid #888;
-webkit-appearance: none;
margin: 0.25em 0 0.25em 0;
}
.tw-edit-texteditor input {
background-color: #f8f8f8;
<<box-shadow "inset 0 1px 8px rgba(0, 0, 0, 0.15)">>
}
.sidebar-header .tw-edit-texteditor input, .sidebar-header .tw-edit-texteditor textarea {
width: 90%;
}
canvas.tw-edit-bitmapeditor {
cursor: crosshair;
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
}
img, canvas, embed {
max-width: 100%;
}
embed {
width: 100%;
height: 20em;
}
tiddlerbackground: {{$:/core/styles/colours##background}}
pagebackground: {{$:/core/styles/colours##pagebackground}}
linkbackground: {{$:/core/styles/colours##background}}
linkforeground: {{$:/core/styles/colours##primary}}
dropdownbackground: {{$:/core/styles/colours##background}}
dropdownborder: {{$:/core/styles/colours##medium}}
primary: `#5959C0`
background: `#fff`
pagebackground: `#ececec`
medium: `#bbb`
fontsize: `14px`
lineheight: `20px`
sidebarwidth: `20%`
/*! normalize.css v2.1.0 | MIT License | git.io/normalize */
/* ==========================================================================
HTML5 display definitions
========================================================================== */
/**
* Correct `block` display not defined in IE 8/9.
*/
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
display: block;
}
/**
* Correct `inline-block` display not defined in IE 8/9.
*/
audio,
canvas,
video {
display: inline-block;
}
/**
* Prevent modern browsers from displaying `audio` without controls.
* Remove excess height in iOS 5 devices.
*/
audio:not([controls]) {
display: none;
height: 0;
}
/**
* Address styling not present in IE 8/9.
*/
[hidden] {
display: none;
}
/* ==========================================================================
Base
========================================================================== */
/**
* 1. Set default font family to sans-serif.
* 2. Prevent iOS text size adjust after orientation change, without disabling
* user zoom.
*/
html {
font-family: sans-serif; /* 1 */
-webkit-text-size-adjust: 100%; /* 2 */
-ms-text-size-adjust: 100%; /* 2 */
}
/**
* Remove default margin.
*/
body {
margin: 0;
}
/* ==========================================================================
Links
========================================================================== */
/**
* Address `outline` inconsistency between Chrome and other browsers.
*/
a:focus {
outline: thin dotted;
}
/**
* Improve readability when focused and also mouse hovered in all browsers.
*/
a:active,
a:hover {
outline: 0;
}
/* ==========================================================================
Typography
========================================================================== */
/**
* Address variable `h1` font-size and margin within `section` and `article`
* contexts in Firefox 4+, Safari 5, and Chrome.
*/
h1 {
font-size: 2em;
margin: 0.67em 0;
}
/**
* Address styling not present in IE 8/9, Safari 5, and Chrome.
*/
abbr[title] {
border-bottom: 1px dotted;
}
/**
* Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
*/
b,
strong {
font-weight: bold;
}
/**
* Address styling not present in Safari 5 and Chrome.
*/
dfn {
font-style: italic;
}
/**
* Address differences between Firefox and other browsers.
*/
hr {
-moz-box-sizing: content-box;
box-sizing: content-box;
height: 0;
}
/**
* Address styling not present in IE 8/9.
*/
mark {
background: #ff0;
color: #000;
}
/**
* Correct font family set oddly in Safari 5 and Chrome.
*/
code,
kbd,
pre,
samp {
font-family: monospace, serif;
font-size: 1em;
}
/**
* Improve readability of pre-formatted text in all browsers.
*/
pre {
white-space: pre-wrap;
}
/**
* Set consistent quote types.
*/
q {
quotes: "\201C" "\201D" "\2018" "\2019";
}
/**
* Address inconsistent and variable font size in all browsers.
*/
small {
font-size: 80%;
}
/**
* Prevent `sub` and `sup` affecting `line-height` in all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
/* ==========================================================================
Embedded content
========================================================================== */
/**
* Remove border when inside `a` element in IE 8/9.
*/
img {
border: 0;
}
/**
* Correct overflow displayed oddly in IE 9.
*/
svg:not(:root) {
overflow: hidden;
}
/* ==========================================================================
Figures
========================================================================== */
/**
* Address margin not present in IE 8/9 and Safari 5.
*/
figure {
margin: 0;
}
/* ==========================================================================
Forms
========================================================================== */
/**
* Define consistent border, margin, and padding.
*/
fieldset {
border: 1px solid #c0c0c0;
margin: 0 2px;
padding: 0.35em 0.625em 0.75em;
}
/**
* 1. Correct `color` not being inherited in IE 8/9.
* 2. Remove padding so people aren't caught out if they zero out fieldsets.
*/
legend {
border: 0; /* 1 */
padding: 0; /* 2 */
}
/**
* 1. Correct font family not being inherited in all browsers.
* 2. Correct font size not being inherited in all browsers.
* 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.
*/
button,
input,
select,
textarea {
font-family: inherit; /* 1 */
font-size: 100%; /* 2 */
margin: 0; /* 3 */
}
/**
* Address Firefox 4+ setting `line-height` on `input` using `!important` in
* the UA stylesheet.
*/
button,
input {
line-height: normal;
}
/**
* Address inconsistent `text-transform` inheritance for `button` and `select`.
* All other form control elements do not inherit `text-transform` values.
* Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+.
* Correct `select` style inheritance in Firefox 4+ and Opera.
*/
button,
select {
text-transform: none;
}
/**
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
* and `video` controls.
* 2. Correct inability to style clickable `input` types in iOS.
* 3. Improve usability and consistency of cursor style between image-type
* `input` and others.
*/
button,
html input[type="button"], /* 1 */
input[type="reset"],
input[type="submit"] {
-webkit-appearance: button; /* 2 */
cursor: pointer; /* 3 */
}
/**
* Re-set default cursor for disabled elements.
*/
button[disabled],
html input[disabled] {
cursor: default;
}
/**
* 1. Address box sizing set to `content-box` in IE 8/9.
* 2. Remove excess padding in IE 8/9.
*/
input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}
/**
* 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
* 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
* (include `-moz` to future-proof).
*/
input[type="search"] {
-webkit-appearance: textfield; /* 1 */
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box; /* 2 */
box-sizing: content-box;
}
/**
* Remove inner padding and search cancel button in Safari 5 and Chrome
* on OS X.
*/
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
* Remove inner padding and border in Firefox 4+.
*/
button::-moz-focus-inner,
input::-moz-focus-inner {
border: 0;
padding: 0;
}
/**
* 1. Remove default vertical scrollbar in IE 8/9.
* 2. Improve readability and alignment in all browsers.
*/
textarea {
overflow: auto; /* 1 */
vertical-align: top; /* 2 */
}
/* ==========================================================================
Tables
========================================================================== */
/**
* Remove most spacing between table cells.
*/
table {
border-collapse: collapse;
border-spacing: 0;
}
<$button message="tw-new-tiddler" class="btn btn-mini btn-success">New Tiddler</$button>
<$button message="tw-save-wiki" class="btn btn-mini btn-primary">Save Changes</$button>
---
{{$:/snippets/encryptionstatus}}
<span class="tw-tiddler-controls"> <$button message="tw-delete-tiddler" class="btn-invisible">{{$:/core/images/delete-button.svg}}</$button> <$button message="tw-cancel-tiddler" class="btn-invisible">{{$:/core/images/cancel-button.svg}}</$button> <$button message="tw-save-tiddler" class="btn-invisible">{{$:/core/images/done-button.svg}}</$button> </span>
<$view field="title"/>
@@.title
<$edit field="draft.title"/>
@@
<div class="tw-tiddler-help">Type tags separated with spaces, [[using double square brackets]] if necessary</div>
<$edit field="tags"/>
<div class="tw-tiddler-help">Use WikiText to add formatting, images, and dynamic features</div>
@@.body
<$edit field="text"/>
@@
<div class="tw-tab-set">
<div class="tw-tab-buttons"><$button type="set" set="$:/state/moreSideBarTabSet" setTo="tagsTab" qualifyTiddlerTitles="yes" selectedClass="tw-tab-selected">Tags</$button><$button type="set" set="$:/state/moreSideBarTabSet" setTo="missingTab" qualifyTiddlerTitles="yes" selectedClass="tw-tab-selected">Missing</$button><$button type="set" set="$:/state/moreSideBarTabSet" setTo="orphanTab" qualifyTiddlerTitles="yes" selectedClass="tw-tab-selected">Orphans</$button><$button type="set" set="$:/state/moreSideBarTabSet" setTo="systemTab" qualifyTiddlerTitles="yes" selectedClass="tw-tab-selected">System</$button></div>
<div class="tw-tab-contents">
<$reveal type="match" state="$:/state/moreSideBarTabSet" text="tagsTab" qualifyTiddlerTitles="yes">
<$list filter="[tags[]sort[title]]" itemClass="tw-menu-list-item"/>
</$reveal>
<$reveal type="match" state="$:/state/moreSideBarTabSet" text="missingTab" qualifyTiddlerTitles="yes">
<$list filter="[is[missing]sort[title]]" itemClass="tw-menu-list-item"/>
</$reveal>
<$reveal type="match" state="$:/state/moreSideBarTabSet" text="orphanTab" qualifyTiddlerTitles="yes">
<$list filter="[is[orphan]sort[title]]" itemClass="tw-menu-list-item"/>
</$reveal>
<$reveal type="match" state="$:/state/moreSideBarTabSet" text="systemTab" qualifyTiddlerTitles="yes">
<$list filter="[is[system]sort[title]]" itemClass="tw-menu-list-item"/>
</$reveal>
</div>
</div>
<!-- The navigator catches navigation events and updates the story and history tiddlers -->
<$navigator story="$:/StoryList" history="$:/HistoryList">
<!-- The sidebar header -->
<header class="sidebar-header">
{{SiteTitle}}.title <br><small>{{SiteSubtitle}}</small><br><br>
{{$:/templates/SideBar}}
</header>
<!-- The story river -->
<section class="story-river">
<!-- The main story -->
<$list filter="[list[$:/StoryList]]" history="$:/HistoryList" template="$:/templates/ViewTemplate" editTemplate="$:/templates/EditTemplate" listview="classic" itemClass="tw-tiddler-frame"/>
<!-- End of story river -->
</section>
</$navigator>
<!-- The implementation of tabs here is currently a bit unreadable -->
@@.search-query
<$edit tiddler="$:/temp/search" type="search" requireFocus="yes"/>
@@
<$reveal state="$:/temp/search" type="nomatch" text="">
<div class="tw-search-results">
<$list filter="[!is[system]searchVia[$:/temp/search]sort[title]limit[50]]" emptyMessage="//No results//"/>
</div>
</$reveal>
<$reveal state="$:/temp/search" type="match" text="">
<div class="tw-tab-set">
<div class="tw-tab-buttons"><$button type="set" set="$:/state/sideBarTabSet" setTo="openTab" qualifyTiddlerTitles="yes" selectedClass="tw-tab-selected">Open</$button><$button type="set" set="$:/state/sideBarTabSet" setTo="allTab" qualifyTiddlerTitles="yes" selectedClass="tw-tab-selected">All</$button><$button type="set" set="$:/state/sideBarTabSet" setTo="toolsTab" qualifyTiddlerTitles="yes" selectedClass="tw-tab-selected">Tools</$button><$button type="set" set="$:/state/sideBarTabSet" setTo="moreTab" qualifyTiddlerTitles="yes" selectedClass="tw-tab-selected">More</$button></div>
<div class="tw-tab-contents">
<$reveal type="match" state="$:/state/sideBarTabSet" text="openTab" qualifyTiddlerTitles="yes">
<$list filter="[list[$:/StoryList]]" history="$:/HistoryList" itemClass="tw-menu-list-item"/>
</$reveal>
<$reveal type="match" state="$:/state/sideBarTabSet" text="allTab" qualifyTiddlerTitles="yes">
<$list filter="[!is[system]sort[title]]" itemClass="tw-menu-list-item"/>
</$reveal>
<$reveal type="match" state="$:/state/sideBarTabSet" text="toolsTab" qualifyTiddlerTitles="yes">
{{$:/templates/ControlPanel}}
</$reveal>
</div>
<$reveal type="match" state="$:/state/sideBarTabSet" text="moreTab" qualifyTiddlerTitles="yes">
{{$:/templates/MoreSideBar}}
</$reveal>
</div>
</$reveal>
<!-- For Google, and people without JavaScript-->
<$list filter="[!is[system]sort[title]]" >
<$view field="title" format="text"></$view>
</$list>
<$button popup="$:/state/tagpopup" qualifyTiddlerTitles="yes" class="btn-invisible"><$setstyle name="background-color" value={{!!color}} class="tw-tag-label"><$view field="title" format="text" /></$setstyle></$button>
<$reveal state="$:/state/tagpopup" type="popup" position="below" qualifyTiddlerTitles="yes" ><div class="tw-drop-down">
<$view field="title" format="link" />
----
<$list filter="[is[current]tagging[]sort[title]]">
<$view field="title" format="link" />
</$list>
</div></$reveal>
<div class="tw-tab-set"><div class="tw-tab-buttons"><$button type="set" set="$:/state/moreSideBarTabSet" setTo="refTab" qualifyTiddlerTitles="yes" selectedClass="tw-tab-selected">References</$button><$button type="set" set="$:/state/moreSideBarTabSet" setTo="taggingTab" qualifyTiddlerTitles="yes" selectedClass="tw-tab-selected">Tagging</$button><$button type="set" set="$:/state/moreSideBarTabSet" setTo="fieldsTab" qualifyTiddlerTitles="yes" selectedClass="tw-tab-selected">Fields</$button></div>
<div class="tw-tab-contents">
<$reveal type="match" state="$:/state/moreSideBarTabSet" text="refTab" qualifyTiddlerTitles="yes">
<$list filter="[is[current]backlinks[]sort[title]]" emptyMessage="No tiddlers link to this one">
</$list>
</$reveal>
<$reveal type="match" state="$:/state/moreSideBarTabSet" text="taggingTab" qualifyTiddlerTitles="yes">
<$list filter="[is[current]tagging[]sort[title]]" itemClass="tw-menu-list-item" emptyMessage="No tiddlers are tagged with this one"/>
</$reveal>
<$reveal type="match" state="$:/state/moreSideBarTabSet" text="fieldsTab" qualifyTiddlerTitles="yes">
<$fieldgrid />
</$reveal>
</div>
</div>
<span class="tw-tiddler-controls"><$button popup="$:/state/tiddlerDropdown" qualifyTiddlerTitles="yes" class="btn-invisible">{{$:/core/images/info-button.svg}}</$button>
<$button message="tw-edit-tiddler" class="btn-invisible">{{$:/core/images/edit-button.svg}}</$button>
<$button message="tw-close-tiddler" class="btn-invisible">{{$:/core/images/close-button.svg}}</$button>
<$reveal type="popup" state="$:/state/tiddlerDropdown" position="belowleft" qualifyTiddlerTitles="yes"><div class="tw-drop-down"><$transclude template="$:/templates/TiddlerDropdown"></$transclude></div>
</$reveal>
</span>
<span class="title"><$view field="title"/></span>
<div class="small"><$view field="modifier" format="link"/> <$view field="modified" format="relativedate"/></div>
<div class="tw-tags-wrapper"><$list filter="[is[current]tags[]]" template="$:/templates/TagTemplate" /></div>
<div class="body">
<$view field="text" format="wikified">
</$view>
</div>
<!--
This template is used for saving CSS tiddlers as a style tag with data attributes representing the tiddler fields.
-->`<style`<$fields template=' data-tiddler-$name$="$encoded_value$"'></$fields>` type="text/css">`<$view field="text" format="text" />`</style>`
<!--
This template is used for saving tiddlers as an HTML DIV tag with attributes representing the tiddler fields.
-->`<div`<$fields template=' $name$="$encoded_value$"'></$fields>`>
<pre>`<$view field="text" format="htmlencoded" />`</pre>
</div>`
<!--
This template is used for saving tiddlers as raw HTML
--><$view field="text" format="htmlwikified" />
<!--
This template is used for saving JavaScript tiddlers as a script tag with data attributes representing the tiddler fields.
-->`<script`<$fields template=' data-tiddler-$name$="$encoded_value$"'></$fields>` type="text/javascript">`<$view field="text" format="text" />`</script>`
<!--
This template is used for saving JavaScript tiddlers as a script tag with data attributes representing the tiddler fields. The body of the tiddler is wrapped in a call to the `$tw.modules.define` function in order to define the body of the tiddler as a module
-->`<script`<$fields template=' data-tiddler-$name$="$encoded_value$"'></$fields>` type="text/javascript" data-module="yes">$tw.modules.define("`<$view field="title" format="jsencoded" />`","`<$view field="module-type" format="jsencoded" />`",function(module,exports,require) {`<$view field="text" format="text" />`});
</script>`
<$view field="text" format="text" />
{{{ [is[system]type[text/css]] ||$:/core/templates/plain-text-tiddler}}}
{{$:/core/styles/base}}
\define tw-wikilink-template() static/$uri_doubleencoded$.html
\rules only filteredtranscludeinline transcludeinline
<!doctype html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="TiddlyWiki" />
<meta name="tiddlywiki-version" content="{{$:/core/templates/version}}" />
<meta name="format-detection" content="telephone=no">
<title>{{$:/core/wiki/title}}</title>
<div id="styleArea">
{{{ [is[system]type[text/css]] ||$:/core/templates/css-tiddler}}}
</div>
<style type="text/css">
{{$:/core/styles/base}}
</style>
</head>
<body>
{{$:/templates/PageTemplate||$:/core/templates/html-tiddler}}
</body>
</html>
\define tw-wikilink-template() $uri_doubleencoded$.html
`<!doctype html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="TiddlyWiki" />
<meta name="tiddlywiki-version" content="`{{$:/core/templates/version}}`" />
<meta name="format-detection" content="telephone=no">
<link rel="stylesheet" href="static.css">
<title>`{{$:/core/wiki/title}}`</title>
</head>
<body>
<section class="story-river">
<div class="tw-tiddler-frame">
`<$view tiddler="$:/templates/ViewTemplate" format="htmlwikified"/>`
</div>
</section>
</body>
</html>
`
<$reveal type="nomatch" state="$:/isEncrypted" text="yes">
`<div id="storeArea" style="display:none;">`
{{{ [!is[system]] ||$:/core/templates/html-div-tiddler}}}
`</div>`
</$reveal>
<$reveal type="match" state="$:/isEncrypted" text="yes">
`<!------------- Encrypted tiddlers --------->`
`<pre id="encryptedStoreArea" type="text/plain" style="display:none;">`
<$encrypt filter="[!is[system]]"/>
`</pre>`
</$reveal>
<!--
This template is used for saving tiddlers in TiddlyWeb *.tid format
--><$fields exclude='text bag' template='$name$: $value$
'></$fields>`
`<$view field="text" format="text" />
<!--
This template is used for saving tiddler metadata *.meta files
--><$fields exclude='text bag' template='$name$: $value$
'></$fields>
\rules only filteredtranscludeinline transcludeinline
<!doctype html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="application-name" content="TiddlyWiki" />
<meta name="generator" content="TiddlyWiki" />
<meta name="tiddlywiki-version" content="{{$:/core/templates/version}}" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="format-detection" content="telephone=no">
<meta name="copyright" content="{{$:/core/copyright.txt}}" />
<title>{{$:/core/wiki/title}}</title>
<!----------- This is a Tiddlywiki file. The points of interest in the file are marked with this pattern ----------->
<!----------- Raw markup ----------->
{{{ [tag[$:/core/wiki/rawmarkup]] ||$:/core/templates/plain-text-tiddler}}}
</head>
<body>
<!----------- Static styles ----------->
<div id="styleArea">
{{{ [is[system]type[text/css]] ||$:/core/templates/css-tiddler}}}
</div>
<!----------- Static content for Google and browsers without JavaScript ----------->
<noscript>
<div id="splashArea">
{{$:/templates/NewStaticContent||$:/core/templates/html-tiddler}}
</div>
</noscript>
<!----------- Miscellaneous system tiddlers ----------->
<div id="systemArea" style="display:none;">
{{{ [is[system]] -[type[text/css]] -[type[application/javascript]has[module-type]] -[type[application/javascript]library[yes]] -[[$:/core/boot.js]] -[[$:/core/bootprefix.js]] ||$:/core/templates/html-div-tiddler}}}
</div>
<!----------- Ordinary tiddlers ----------->
{{$:/core/templates/store.area.template.html}}
<!----------- Library modules ----------->
<div id="libraryModules" style="display:none;">
{{$:/core/lib/jquery.min.js||$:/core/templates/javascript-tiddler}}
{{{ [is[system]type[application/javascript]library[yes]] -[[$:/core/lib/jquery.min.js]] ||$:/core/templates/javascript-tiddler}}}
</div>
<!----------- Boot kernel prologue ----------->
<div id="bootKernelPrefix" style="display:none;">
{{ $:/core/bootprefix.js ||$:/core/templates/javascript-tiddler}}
</div>
<!----------- Plugin modules ----------->
<div id="modules" style="display:none;">
{{{ [is[system]type[application/javascript]has[module-type]] ||$:/core/templates/module-tiddler}}}
</div>
<!----------- Boot kernel ----------->
<div id="bootKernel" style="display:none;">
{{ $:/core/boot.js ||$:/core/templates/javascript-tiddler}}
</div>
</body>
</html>
<$reveal type="match" state="$:/isEncrypted" text="yes">
This wiki is encrypted.
<$button message="tw-clear-password" class="btn btn-mini btn-danger">Clear password</$button>
<$button message="tw-set-password" class="btn btn-mini btn-warning">Change password</$button>
</$reveal>
<$reveal type="nomatch" state="$:/isEncrypted" text="yes">
This wiki is not encrypted.
<$button message="tw-set-password" class="btn btn-mini btn-warning">Set password</$button>
</$reveal>
{{SiteTitle}} --- {{SiteSubtitle}}
{
"title": "$:/plugins/tiddlywiki/fullscreen",
"description": "Adds support for HTML5 full screen mode",
"author": "JeremyRuston",
"version": "0.0.0",
"coreVersion": ">=5.0.0",
"tiddlers": {
"init.js": {
"text": "/*\\\ntitle: $:/plugins/tiddlywiki/fullscreen/init.js\ntype: application/javascript\nmodule-type: browser-startup\n\nMessage handler for full screen mode\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, Element: false */\n\"use strict\";\n\nvar toggleFullScreen = function() {\n\tif(document[$tw.browser.isFullScreen]) {\n\t\tdocument[$tw.browser.cancelFullScreen]();\n\t} else {\n\t\tdocument.documentElement[$tw.browser.requestFullScreen](Element.ALLOW_KEYBOARD_INPUT);\n\t}\n};\n\nexports.startup = function() {\n\t// Install the full screen handler\n\tdocument.addEventListener(\"tw-full-screen\",function(event) {\n\t\ttoggleFullScreen();\n\t},false);\n};\n\n})();\n",
"title": "$:/plugins/tiddlywiki/fullscreen/init.js",
"type": "application/javascript",
"module-type": "browser-startup"
}
}
}
HelloThere
[[TiddlyWiki5 Editions]]
Demos
Improvements
Docs
TiddlySpot
HelloThere
TiddlyWiki5 Editions
Demos
Improvements
Docs
[
{
"title": "TiddlySpot",
"fromPageRect": {
"height": 16,
"width": 73,
"left": 42,
"bottom": 253,
"right": 115,
"top": 237
}
}
]
TiddlyWiki5 wouldn't be possible without the ongoing support of the TiddlyWiki user and developer community. Their attention and feedback has made it possible to gain an understanding of what is wanted from the product, and their passion for it has taught me that it is worth the investment that I am making.
TiddlyWiki5 stands on the shoulders of giants, by reusing these projects:
* [[The Stanford Javascript Crypto Library|http://crypto.stanford.edu/sjcl/]]
Current tiddlers:
<$list type="all" />
TiddlyWiki5 can be used to build older 2.x.x versions of TiddlyWiki from their constituent components. Doing so involves these additional features over and above those used for building TiddlyWiki5:
* The `tiddlywiki2/loadrecipe` plugin, containing a deserializer module which allows tiddlers to be loaded from TiddlyWiki 2.x.x `.recipe` files
* The `tiddlywiki2/stripcomments` plugin, containing a new viewer format for the `<$view>` widget that strips single line JavaScript comments starting `//#`
* The `stripTitlePrefix='yes'` attribute of the `<$fields>` widget, which removes prefixes wrapped in curly braces from the `title` attribute
** For example, `{tiddler}HelloThere` would be transformed to `HelloThere`
! Usage
TiddlyWikiClassic is built from the command line by running TiddlyWiki5 under node.js. A typical usage would be:
```
node ../../tiddlywiki.js \
--verbose \
--load <path_to_recipe_file> \
--savetiddler $:/core/templates/tiddlywiki2.template.html <path_to_write_index_file> text/plain \
|| exit 1
```
Here are a few features of TiddlyWiki that you can explore:
* Invoke a demonstration wizard: <$button message="tw-modal" param="SampleWizard" class="btn btn-inverse">demo</$button> (the text of the wizard is in the tiddler SampleWizard)
* Save this wiki as a static HTML file: <$button message="tw-save-wiki" param="$:/core/templates/static.template.html" class="btn">Save Static</$button>
* Browse the list of AllTiddlers or the SystemTiddlers
* Examine the example [[bitmap images|Motovun Jack.jpg]] and [[SVG images|Motovun Jack.svg]]
* Check out the TaskManagementExample
Learn more about using TiddlyWiki5:
{{{ [tag[howto]sort[title]] }}}
This is the developer documentation hub for TiddlyWiki.
! Developer Cookbooks
* [[Using TiddlyWiki for GitHub Pages project documentation]]
* [[Using TiddlyWiki as a component in node.js applications]]
* [[Constructing TiddlyWiki documents in other applications]]
! Internal Objects and Mechanisms
Internally, TiddlyWiki is built on a number of key objects and mechanisms:
* TiddlerObject
* WikiObject
* BootMechanism
* PluginMechanism
* ParsingMechanism
* RenderingMechanism
* DependencyMechanism
* RefreshMechanism
* MacroMechanism
* StoryMechanism
* EditingMechanism
* SavingMechanism
* SyncMechanism
* CommandMechanism
* ConfigMechanism
* EncryptionMechanism
! Plugin Module Types
TiddlyWiki is built on a [[tiny microkernel|BootMechanism]] with all functionality provided as various types of plugin module:
* CommandModules
* ConfigModules
* EditorModules
* GlobalModules
* LibraryModules
* MacroModules
* ModuleModules
* ParserModules
* SaverModules
* StartupModules
* StoryViewModules
* SyncerModules
* TiddlerDeserializerModules
* TiddlerFieldModules
* TiddlerMethodModules
* TreeNodeModules
* TreeUtilsModules
* UtilsModules
* WikiMethodModules
* WikiTextRuleModules
! Parsers
TiddlyWiki processes [[ContentTypes|ContentType]] such as WikiText using these parsers:
* WikiTextParser
* JsonParser
* ImageParser
* PlainTextParser
* JavaScriptParser
! Deserializers
Deserializers are modules that read tiddlers from different text formats:
* RecipeFiles
* TiddlerFiles
* TiddlyWikiFiles
This is the main documentation hub for TiddlyWiki. See also the DeveloperDocs.
! Editions
TiddlyWiki5 can be used via these editions:
{{{ [tag[edition]sort[title]] }}}
! How to use ~TiddlyWiki5
{{{ [tag[howto]sort[title]] }}}
! Concepts
The core concepts underlying TiddlyWiki are:
* [[Tiddlers]]
* [[Wiki]]
* TiddlyWiki
* WikiText
The machinery tying those concepts together includes:
* TiddlerFilters
* TiddlerFields
* TiddlerTemplates
* DataTiddlers
* ContentType
* SystemTiddlers
* [[Plugins]]
* [[Modules]] and [[ModuleType]]
! Wiki Text Rules
These are the individual rules that make up WikiText:
{{{ [tag[wikitextrule]sort[title]] }}}
! Widgets
Widgets give WikiText dynamic functionality:
{{{ [tag[widget]sort[title]] }}}
! Commands
When run under node.js, TiddlyWiki supports a [[command line interface|TiddlyWiki5 Node Edition]] with the following built-in commands:
{{{ [tag[command]sort[title]] }}}
! Miscellaneous
* ReportingBugs
* JeremyRuston (aka [[Jermolene]])
* FederatialLimited
* [[History]]
* [[Acknowledgements]]
Welcome to TiddlyWiki5, a reboot of TiddlyWiki, the non-linear personal web notebook [[first released in 2004|History]]. It is a complete interactive wiki in JavaScript that can be run from a single HTML file in the browser or as a powerful [[node.js application|node.js]].
TiddlyWiki is designed to fit around your brain, giving you a better way of managing information than traditional documents and emails. The fundamental idea is that information is more useful and reusable if we cut it up into the smallest semantically meaningful chunks -- [[tiddlers|Tiddlers]] -- and give them titles so that they can be structured with links, tags and macros. TiddlyWiki aims to provide a fluid interface for working with tiddlers, allowing them to be aggregated and composed into longer narratives.
TiddlyWiki5 has many [[improvements|Improvements]] over the original. It is currently labelled alpha, meaning it is working but incomplete. It is a great time to get involved and support its [[future development|RoadMap]]. You can:
* Explore its features online at http://five.tiddlywiki.com/
* Get involved in the [[development on GitHub|https://github.com/Jermolene/TiddlyWiki5]]
* Join the discussions on [[the TiddlyWikiDev Google Group|http://groups.google.com/group/TiddlyWikiDev]]
* Follow [[@TiddlyWiki on Twitter|http://twitter.com/#!/TiddlyWiki]] for the latest news
* Learn how to [[help the TiddlyWiki project and community|HelpingTiddlyWiki]]
Here are some ideas how anyone can join in to help make TiddlyWiki better.
! 1. Tell The World
If you find TiddlyWiki useful, spread the word. The best possible way to assure its future is for it to become a hundred times more popular than before.
* [[Tweet about TiddlyWiki|https://twitter.com/intent/tweet?text=I+love+TiddlyWiki+because...&source=tiddlywiki5]]
! 2. Join the discussion
There's lively discussion about TiddlyWiki in the Google Groups:
* The main TiddlyWiki group: http://groups.google.com/group/TiddlyWiki
* The TiddlyWikiDev group for developers: http://groups.google.com/group/TiddlyWikiDev
! 3. Improve the Documentation and Code
The main TiddlyWiki documentation and code lives on GitHub, and so can be forked and pulled freely:
https://github.com/Jermolene/TiddlyWiki5
! Origins of TiddlyWiki
Back in 1997 a colleague introduced me to [[Ward Cunningham's original wiki|http://c2.com/cgi/wiki]]. I was stunned that something so powerful could fit into just 700 lines of Perl, and fascinated by the radical reimagining of security and permissions. Like many other developers, I took every opportunity I could to try out various wikis, and to explore their use at work.
The allure of the wiki for me was the feeling that this might be a paradigm that could eventually topple the prevailing hegemony of print-oriented documents and emails.
After watching people use wikis for a few years, I noticed that power users made extensive use of the ability to open multiple wiki pages at once in several browser tabs, making it easier for them to compare and review pages, to copy text between them and to act as a sort of queue of pages yet to be read.
I could see that this ability to manipulate multiple pages at once was central to the ability to refactor a wiki, and I've found that a wiki that is lovingly refactored tends to be more useful. And yet, standard wiki user interfaces have always been designed exclusively for the presentation and manipulation of single pages at once.
All of these thoughts came together when I saw GMail in April 2004, which used Ajax cleverly to blend individual emails into threaded conversations.
I started experimenting with HTML and JavaScript to explore the idea further. I'd had virtually no experience of either, just having put together some static pages and simple ASP sites in previous lives. Getting my head around these client-side technologies was painful; like everyone else, I was horrified to discover how appalling were the incompatibilities and inconsistencies of web programming.
! Launch of TiddlyWiki
So, in September 2004 I released a primitive [[first version of TiddlyWiki|http://tiddlywiki.com/firstversion.html]]. It was the smallest possible thing that demonstrated the idea that I had: it was a simple, self-contained static 48KB HTML file sitting on a dusty old Sun server in my friend Steph's attic.
The downside of writing the first version of TiddlyWiki in this way was that it made it completely impractical to use for editing - when you click 'save changes' it just pops up a window showing the data that would be saved if it were possible for an HTML page to write to the file system.
! Growth of TiddlyWiki
! BT Acquisition
! Osmosoft and TiddlySpace
! Leaving BT
//To be continued...//
TiddlyWiki5 is a complete rewrite of the original TiddlyWiki. It is now based on an elegant [[microkernel architecture|PluginMechanism]], that allows infinite customisation by replacing and augmenting the core modules. The new code is much easier to work with, and will hopefully prove an even more fertile ground for the community of open source developers around TiddlyWiki.
For end users, the important improvements include:
* Improved WikiText, with much better generation of HTML, including proper `<p>` tags
* Flexible TiddlerFilters that make it easier to work with several tiddlers in a single operation
* TiddlyWiki can now be run under [[node.js]] as well as in the browser, allowing it to be used as a personal web server
* Tiddlers containing images are now supported just like WikiText tiddlers, including integrated editing of bitmap and SVG images
* TiddlyWiki5 can directly build both itself and previous (2.x.x) versions of TiddlyWiki from their constituent separate files, without needing external tools
The internal changes mean that TiddlyWiki5 is not compatible with previous versions, using different plugins, themes and so on. The changes to the WikiText have been carefully developed to try to maximise backwards compatibility but content prepared for previous versions of TiddlyWiki will need massaging to work properly in TiddlyWiki5.
TiddlySpot is a free hosting service for TiddlyWiki documents from Simon and Daniel Baird. It has been in operation almost as long as TiddlyWiki itself.
TiddlyWiki5 isn't yet built in to TiddlySpot but you can use it by following these steps:
# Sign up for a new wiki at http://tiddlyspot.com/, and remember the wiki name and password
# Open TiddlyWiki5 in your browser from http://five.tiddlywiki.com/
# Fill in the information listed below
# Click the "Save Changes" button. You should get a confirmation message `0 - Fileindex.html`
# Navigate to your TiddlySpot URL at http://{wikiname}.tiddlyspot.com/
# You should see a copy of TiddlyWiki5. You can edit and create tiddlers, and click "Save Changes" to save changes back up to TiddlySpot (you'll need to re-enter your password the first time you visit the wiki on TiddlySpot)
! TiddlySpot details
Wiki name: <$edit tiddler="$:/UploadName" default="" type="input"/>
Password: <$password name="upload"/>
----
If you're using a server other than TiddlySpot, you can set the server URL here:
Service URL: <$edit tiddler="$:/UploadURL" default="" type="input"/>
//(by default, the server URL is `http://<wikiname>.tiddlyspot.com/store.cgi`)//
The core TiddlyWiki5 code is packaged into several distinct editions designed for different situations:
* [[TiddlyWiki5 Standalone Edition]] for working purely within the browser
** Including [[TiddlyWiki5 in the Sky for TiddlySpot|TiddlySpot]]
* [[TiddlyWiki5 Node Edition]] for advanced command line work
** Including [[TiddlyWiki5 Static Site Generation]]
** Including [[Building classic TiddlyWiki with TiddlyWiki5]]
* [[TiddlyWiki5 in the Sky for TiddlyWeb]] (and TiddlySpace)
* [[TiddlyWiki5 in the Sky for Dropbox]]
The heart of TiddlyWiki can be seen as an extensible representation transformation engine for text and images. Given the text of a tiddler and its associated ContentType, the engine can produce a rendering of the tiddler in a new ContentType. Furthermore, it can efficiently selectively update the rendering to track any changes in the tiddler or its dependents.
The primary use of the engine is to convert raw `text/vnd.tiddlywiki` WikiText into a `text/html` or `text/plain` representation for display. The transclusion and templating features of WikiText allow the engine to also be used to generate TiddlyWiki HTML files from raw tiddlers.
You can explore this mechanism by opening the JavaScript console in your browser. Typing this command will replace the text of the tiddler `HelloThere` with new content:
```
$tw.wiki.addTiddler({title: "HelloThere", text: "This is some new content"});
```
If the tiddler `HelloThere` is visible then you'll see it instantly change to reflect the new content. If you create a tiddler that doesn't currently exist (like IntentionallyMissingTiddler) then you'll see any displayed links to it instantly change from italicised to normal:
```
$tw.wiki.addTiddler({title: "IntentionallyMissingTiddler", text: "This tiddler now exists"});
```
This example deletes a tiddler:
```
$tw.wiki.deleteTiddler("HelloThere")
```
This example retrieves all the outgoing links from a tiddler:
```
$tw.wiki.getTiddlerLinks("HelloThere")
```
This example retrieves all the incoming links to a tiddler:
```
$tw.wiki.getTiddlerLinks("HelloThere")
```
This example retrieves the titles of all the tiddlers matching a TiddlerFilter expression:
```
$tw.wiki.filterTiddlers("[tag[docs]sort[modified]]")`
```
If you're interested in understanding more about the internal operation of TiddlyWiki, it is recommended that you review the DeveloperDocs and read the code -- start with the boot kernel [[$:/core/boot.js]].
!!! dump tiddlers
Dump the titles of the tiddlers in the wiki store
```
--dump tiddlers
```
!!! dump tiddler
Dump the fields of an individual tiddler
```
--dump tiddler <title>
```
!!! dump system
Dump the titles of the system tiddlers in the wiki store
```
--dump systems
```
!!! dump config
Dump the current core configuration
```
--dump config
```
Load tiddlers from 2.x.x TiddlyWiki files (`.html`), `.tiddler`, `.tid`, `.json` or other files
```
--load <filepath>
```
Save an individual tiddler as a specified ContentType, defaults to `text/html`
```
--savetiddler <title> <filename> [<type>]
```
Save a set of tiddlers matching a filter as separate files of a specified ContentType (defaults to `text/html`) and extension (defaults to `.html`).
```
--savetiddlers <filter> <template> <pathname> [<type>] [<extension>]
```
For example:
```
--savetiddlers [!is[system]] $:/core/templates/static.tiddler.html ./static text/plain
```
The server built in to TiddlyWiki5 is very simple. Although compatible with TiddlyWeb it doesn't support many of the features needed for robust Internet-facing usage - in particular, TiddlyWiki5 is an old-school wiki in the sense that it offers no authentication.
At the root, it serves a rendering of a specified tiddler. Away from the root, it serves individual tiddlers encoded in JSON, and supports the basic HTTP operations for `GET`, `PUT` and `DELETE`.
```
--server <port> <roottiddler> <rendertype> <servetype>
```
For example:
```
--server 8080 $:/core/tiddlywiki5.template.html text/plain text/html
```
The parameters are:
```
--server <port> <roottiddler> <rendertype> <servetype>
```
* ''port'' - port number to serve from (defaults to "8080")
* ''roottiddler'' - the tiddler to serve at the root (defaults to "$:/core/tiddlywiki5.template.html")
* ''rendertype'' - the content type to which the root tiddler should be rendered (defaults to "text/plain")
* ''servetype'' - the content type with which the root tiddler should be served (defaults to "text/html")
Triggers verbose output, useful for debugging
```
--verbose
```
Displays the version number of TiddlyWiki.
```
--version
```
The ContextTiddler is the current tiddler during WikiText processing. It allows you to write a widget like `<$view field="title" format="link"/>` in TiddlerTemplates without explicitly specifying the tiddler that it applies to.
The `module-type` field of a [[JavaScript module|Modules]] is a string that identifies the type of the module. TiddlyWiki5 uses the following types:
* `command` - individual commands for the `$tw.Commander` class
* `config` - values to be merged over the `$tw.config` global
* `editor` - interactive editors for different types of content
* `global` - members of the `$tw` global
* `library` - external global JavaScript library, such as Esprima or jQuery
* `macro` - macro definitions
* `module` - generic type for modules `require`d by other modules
* `parser` - parsers for different types of content
* `saver` - functions for saving TiddlyWiki content on different platforms
* `startup` - functions to be called by the kernel after booting
* `storyview` - visualisations for the `story` macro
* `tiddlerdeserializer` - methods to extract tiddlers from text representations or the DOM
* `tiddlerfield` - defines the characteristics of tiddler fields of a particular name
* `tiddlermethod` - additional methods for the `$tw.Tiddler` class
* `tiddlerserializer` - methods to serialise tiddlers to text representations
* `treenode` - classes of parser tree nodes
* `treeutils` - static utility methods for parser tree nodes
* `utils` - general purpose utility functions residing in `$tw.utils`
* `wikimethod` - additional methods for the `$tw.Wiki` class
* `wikitextrule` - individual rules for the wikitext parser
A //module// in TiddlyWiki5 is a tiddler containing executable JavaScript, of the type `application/javascript` and with the field `module-type` set to the ModuleType of the module.
A plugin in TiddlyWiki5 is a bundle of tiddlers packaged together as a single tiddler. Plugins are used to distribute optional, custom components for TiddlyWiki. Plugins can contain JavaScript modules, style sheets, and templates to extend the functionality of TiddlyWiki itself. Plugins can also be used to distribute ordinary text, images or other content. Plugins can be updated from their source as a unit.
See the PluginMechanism discussion for more details about how plugins are implemented internally.
TiddlyWiki models everything as [[tiddlers|Tiddlers]], including its internal components and configuration.
Thus, even an apparently empty TiddlyWiki actually contains dozens of tiddlers that are necessary to enable it function correctly. To prevent them from confusing casual users, these system tiddlers are hidden from most operations. They don't show up in lists or search results, but linking to one directly works in the usual way.
The current system tiddlers are:
<$list type="system" />
A TextReference identifies a chunk of text from a tiddler that can be retrieved or modified depending on the context.
TextReferences are made up of several parts, most of which can be optional:
* `<tiddler title>` - the text field of the specified tiddler
* `<tiddler title>!!<metadata field>` - a tiddler metadata field (eg, `modified`, `modifier`, `type` etc)
* `!!<metadata field>` - a metadata field of the current tiddler
* `<tiddler title>##<property index>` - extracts a named property from DataTiddlers
Filters are used in TiddlyWiki to choose tiddlers by specifying simple match criteria.
! Examples
The mechanism is easiest to understand by first presenting some example filter strings:
@@.table-condensed
|!Filter |!Results |
|`HelloThere` |The single tiddler titled `HelloThere` (if it exists) |
|`[[A Title With Several Words]]` |The single tiddler titled `A Title With Several Words` (if it exists) |
|`[title[MyTiddler]]` |The single tiddler titled `MyTiddler` (if it exists) |
|`HelloThere Introduction` |The tiddlers titled `HelloThere` and `Introduction` (if they exist) |
|`[tag[important]]` |All tiddlers with the tag `important` |
|`[!tag[important]]` |All tiddlers not with the tag `important` |
|`[tag[important]sort[title]]` |All tiddlers with the tag `important` sorted by title |
|`[tag[important]!sort[title]]` |All tiddlers with the tag `important` reverse sorted by title |
|`[[one]] [[two]] [[three]] +[tag[tom]]` |Any of the tiddlers called `one`, `two` or `three` that exist and are tagged with `tom` |
|`[[one]] [[two]] [[three]] [tag[tom]]` |Any of the tiddlers called `one`, `two` or `three` that exist, along with all of the source tiddlers that are tagged with `tom` |
|`[tag[tom]] [tag[harry]] -[[one][two][three]]` |All tiddlers tagged either `tom` or `harry`, but excluding `one`, `two` and `three` |
|`[[MyTiddler]tags[]]` |All tiddlers being used as tags on the tiddler `MyTiddler` |
|`[[MyTiddler]tagging[]]` |All tiddlers being tagged with `MyTiddler` |
|`[list[MyList]]` |All tiddlers listed in `MyList` |
@@
! Operators
A filter string consists of one or more runs of filter operators that each look like `[operator[operand]]`, where `operator` is one of:
* ''title'': selects the tiddler with the title given in the operand
* ''is'': tests whether a tiddler is a member of the system defined set named in the operand (see below)
* ''has'': tests whether a tiddler has the field specified in the operand
* ''sort'': sorts the tiddlers by the field specified in the operand
* ''sort-case-sensitive'': a case sensitive sort of the current tiddlers by the field specified in the operand
* ''prefix'': tests whether a tiddlers title starts with the prefix specified in the operand
* ''limit'': limits the number of subresults to the integer specified in the operand
* ''tag'': tests whether a given tag is (`[tag[mytag]]`) or is not (`[!tag[mytag]]`) present on the tiddler
* ''{field}'': tests whether a tiddler field has a specified value (`[modifier[Jeremy]]`) or not (`[!modifier[Jeremy]]`)
* ''tags'': selects the tags on the currently selected tiddlers
* ''tagging'': selects the tiddlers tagged with the currently selected tiddlers
* ''links'': selects the outgoing links on the currently selected tiddlers
* ''backlinks'': selects the tiddlers that link to the currently selected tiddlers
* ''list'': selects the tiddlers listed in a specified tiddler (newline delimited)
An operator can be negated with by preceding it with `!`, for example `[!tag[Tommy]]` selects the tiddlers that are not tagged with `Tommy`.
The operator defaults to `title` if omitted, so `[[HelloThere]]` is equivalent to `[title[HelloThere]]`. If there are no spaces in the title, then the double square brackets can also be omitted: `HelloThere`.
The operands available with the `is` operator are:
* ''system'': selects all system tiddlers
* ''current'': selects the current ContextTiddler
* ''missing'': selects all missing tiddlers
* ''orphan'': selects all orphan tiddlers
! Runs
Operators are combined into runs that function as logically ANDed expressions by bashing them together and merging the square brackets:
```
[tag[one]] [tag[two]] ---> [tag[one]tag[two]]
```
Runs can be preceded with `-` to negate their action, removing the selected tiddlers from the results. For example, `[tag[Tommy]] -HelloThere -[[Another One]]` selects all tiddlers tagged with `Tommy` except those titled `HelloThere` or `Another One`.
Runs can be preceded with `+` in order to make them apply to all of the accumulated results, rather than the original source. For example, `[tag[Jeremy]] [tag[Tommy]] +[sort[title]]` selects the tiddlers tagged `Tommy` or `Jeremy`, and sorts them by the `title` field.
! Processing model
Filters are processed with the following elements:
* a sequence of runs of filter operations
* the incoming source tiddlers, typically all the tiddlers available in the wiki
* the overall result stack
* the subresult stack of the tiddlers selected by the current run
Tiddlers are the smallest unit of information in TiddlyWiki.
Internally, tiddlers are an immutable dictionary of name:value pairs called fields. The only field that is required is the `title` field, but useful tiddlers also have a `text` field, and some or all of the standard fields listed below. The behaviour and type of each field is determined by special TiddlerFieldModules.
* `title` - The unique title of the tiddler
* `modified` - The date of the last modification to the tiddler
* `modifier` - The name of the last person to modify the tiddler
* `created` - The date the tiddler was created
* `creator` - The name of the person who created the tiddler
* `tags` - A list of tags applied to the tiddler
* `type` - The ContentType that should used to interpret the content of the tiddler
TiddlyWiki is a rich, interactive interface for manipulating complex data with structure that doesn't easily fit into conventional tools like spreadsheets or wordprocessors.
TiddlyWiki is based on the idea of making information more useful by modelling it in the smallest meaningful semantic units, referred to as [[Tiddlers]]. Structure comes from links, tags, and sequences of tiddlers called stories. Tiddlers use a WikiText notation that concisely represents a wide range of text formatting and hypertext features.
People [[love using|Raves]] TiddlyWiki. Because it can be used without any complicated server infrastructure, and because it is [[open source|OpenSource]], it has bought unprecedented freedom to people to keep their precious information under their own control. TiddlyWiki was originally created by JeremyRuston and is now a thriving [[open source|OpenSource]] project with a busy [[Community]] of independent developers.
See TiddlyWikiArchitecture and [[Introduction]].
TiddlyWiki5 is a reboot of TiddlyWiki for the next 25 years. It is a complete interactive wiki in JavaScript that can be run in the browser or on the server under [[node.js]].
Groups of uniquely titled tiddlers are contained in WikiStore objects.
The WikiStore also manages the plugin modules used for widgets, and operations like serializing, deserializing, parsing and rendering tiddlers.
\define wikitext-example(src)
```
$src$
```
Renders as:
$src$
In HTML:
$$$text/vnd.tiddlywiki>text/html
$src$
$$$
\end
WikiText is a concise, expressive way of typing a wide range of text formatting, hypertext and interactive features. It allows you to focus on writing without a complex user interface getting in the way. It is designed to be familiar for users of [[MarkDown|http://daringfireball.net/projects/markdown/]], but with more of a focus on linking and the interactive features.
! Linking in WikiText
A key capability of WikiText is the ability to make links to other tiddlers or to external websites. There are several ways of doing this:
* To link to a tiddler by title: `[[Tiddler Title]]`
* To link to a tiddler and specify the text of the link: `[[Displayed Link Title|Tiddler Title]]`
* For tiddler titles that match the CamelCase rules, just typing the title will automatically create a link
* To link to an external website, type the full URL of the site: `http://five.tiddlywiki.com/`
You can suppress a link from being recognised by preceding it with `~`. For example:
<<wikitext-example src:"* ~HelloThere is not a link
* ~http://google.com/ is not a link">>
! Paragraphs
To mark the end of a paragraph in TiddlyWiki you need to type `enter` twice to create a double line break:
```
This is the first paragraph.
And this is the second paragraph.
```
Single line breaks are ignored within paragraphs. For example:
<<wikitext-example src:"This is a
paragraph made
up of
short lines">>
! Formatting
Available character formatting includes:
* <code>`backticks`</code> for `code`
* `''bold''` for ''bold text''
* `//italic//` for //italic text//
* `__underscore__` for __underscored text__
* `^^superscript^^` for ^^superscript^^ text
* `,,subscript,,` for ,,subscripted,, text
* `~~strikethrough~~` for ~~strikethrough~~ text
You can also use triple backticks <code>```</code> to mark code blocks:
<pre>
```
This will be monospaced
```
</pre>
Renders as:
```
This will be monospaced
```
! Transclusion
You can incorporate the content of one tiddler within another using the transclusion notation:
* `{{MyTiddler}}` transcludes a single tiddler
* `{{MyTiddler|tooltip}}` adds a tooltip
* `{{MyTiddler||TemplateTitle}}` displays the tiddler through a specified [[TiddlerTemplate|TiddlerTemplates]]
* `{{MyTiddler|tooltip||TemplateTitle}}` specifies both a tooltip and a template for the transcluded content
* `{{MyTiddler}width:40;height:50;}.firstClass.secondClass` transcludes a single tiddler, adding the specified styles and classes to the transcluded content
A similar syntax can be used to transclude a list of tiddlers matching a specified [[TiddlerFilter|TiddlerFilters]]:
```
{{{ [tag[docs]] }}}
{{{ [tag[docs]] |tooltip}}}
{{{ [tag[docs]] ||TemplateTitle}}}
{{{ [tag[docs]] |tooltip||TemplateTitle}}}
{{{ [tag[docs]] }}width:40;height:50;}.class.class
```
! Images
To display an image stored in a tiddler just transclude that tiddler:
```
{{Motovun Jack.jpg}}
```
Renders as:
{{Motovun Jack.jpg}}
! Lists
You can create unordered lists with `*` characters:
<<wikitext-example src:"* First list item
* Second list item
** A subitem
* Third list item
">>
Ordered lists use `#` instead of `*`:
# First item
# Second item
# Third item
You can also mix ordered and unordered list items:
<<wikitext-example src:"* To do today
*# Eat
* To get someone else to do
*# This
*# That
*## And the other
">>
You can also create HTML definition lists:
<<wikitext-example src:"; Term being defined
: Definition of that term
; Another term
: Another definition
">>
! Adding styles and classes
You can use this construction to cause the wrapped content to be assigned specified CSS classes or styles:
<<wikitext-example src:"@@.myStyle
* List One
* List Two
@@
">>
Similar syntax is used to assign styles. For example:
<<wikitext-example src:"@@background-color:red;
* List One
* List Two
@@
">>
Multiple styles and classes can be mixed. For example:
<<wikitext-example src:"@@.aClass
@@width:400px;
Some text
@@
">>
You can also assign a CSS class to an individual member of a list with this notation:
<<wikitext-example src:"* List One
*.MyClass List Two
* List Three
">>
! Typographic Features
You can create an n-dash with a double hyphen `--` and an m-dash with a triple hyphen `---`. For example -- this is an example --- and so is this
You can include a horizontal rule with three or more dashes on their own on a line:
<<wikitext-example src:"
---
">>
! Macros
Macros are snippets of text that can be inserted with a concise shortcut. A macro is defined like this:
```
\define mysamplemacro(name:"Bugs Bunny",address:"Rabbit Hole Hill")
Hi, I'm $name$ and I live in $address$
\end
```
The first line of the definition specifies the macro name and any parameters. Parameters are named and can optionally have default values that are used if the parameter isn't specified at the time of calling. The body of the macro definition follows, terminated with `\end`. The macro can include parameters using the `$name$` construction.
Macro definitions must be placed at the top of a tiddler. Macros are available to the tiddler that defines them, plus any tiddlers that it transcludes.
Macros are used like this:
```
<<mysamplemacro>>
<<mysamplemacro "Donald Duck">>
<<mysamplemacro "Mickey Mouse" "Mouse House">>
```
Resulting in:
```
Hi I'm Bugs Bunny and I live in Rabbit Hole Hill
Hi I'm Donald Duck and I live in Rabbit Hole Hill
Hi I'm Mickey Mouse and I live in Mouse House
```
! HTML in WikiText
HTML tags and comments can be used directly in WikiText. For example:
```
<article class="hello">
This is my nice and simple block of text. HelloThere
<!-- This comment will not appear in the wikified output -->
</article>
```
! Widgets
Widgets provide rich functionality within WikiText. For example, the `<$video>` widget can be used to embed videos from YouTube, Vimeo or the Internet Archive:
```
<$video src="32001208" type="vimeo" />
```
For full details of the available widgets, see the [[Docs]].
! Headings
Headings are specified with one or more leading `!` characters:
```
! This is a level 1 heading
!! This is a level 2 heading
!!! This is a level 3 heading
```
CSS classes can be assigned to individual headings like this:
```
!.myStyle This heading has the class `myStyle`
```
! Other WikiText features
!! Typed Blocks
You can incorporate text of a different type within blocks of WikiText. For example:
```
$$$.js
return 2 + "string";
$$$
```
Renders as:
$$$.js
return 2 + "string";
$$$
See TypedBlockWikiText for more details
Federatial Limited is a software consultancy founded by JeremyRuston specializing in understanding the impact of the web on the way that we work together.
Through human history we have used hierarchies to organize ourselves to undertake big challenges: from raising an army to building a modern global enterprise. Now we see the rise of small, loosely federated groups that use the web to establish agreement and organize action.
I've spent my life inventing software products with great user experiences, and building the teams to develop them. I'm the inventor of TiddlyWiki, a popular open source personal organiser that's grown to be the platform for a whole new class of web applications. I lead the community around TiddlyWiki, and am dedicated to building a great product for users all over the world.
I am available through my company FederatialLimited for consultancy and speaking engagements.
You can find me on these services:
* [[@Jermolene on Twitter|http://twitter.com/#!/jermolene]]
* [[LinkedIn|http://www.linkedin.com/in/jermy]]
* [[Flickr|http://www.flickr.com/photos/jermy/]]
Further information:
* An [[interview with me in The Inquirer|http://www.theinquirer.net/inquirer/feature/2105529/bt-software-engineer-tells-telco-source]] by Wendy Grossman
* A [[hilarious interview with me|http://www.youtube.com/watch?v=auyIhw8MTmQ]] from British television in 1983
OpenSource is [[defined by Wikipedia|http://en.wikipedia.org/wiki/Open_source]] as //a philosophy, or pragmatic methodology that promotes free redistribution and access to an end product's design and implementation details//.
For me, OpenSource speaks to a fundamental truth about software: software is unlike anything else we produce in our post-industrial revolution era. Initially, we thought that programming would evolve to be a branch of engineering: a process that was amenable to conventional techniques of mass production, and the traditional business models we have wrapped around the things we make and the things we dig out of the ground.
As it has turned out, programming isn't like engineering at all. With an endeavour such as bridge building, engineers can reliably build bridges to any required specification, with a full understanding of the practical limitations under which it has to operate. In software, we struggle to manage large scale development. We can't even reliably estimate the complexity of non-trivial programming tasks. Organisations increasingly think of custom software as being a liability, and not the asset that it first appears.
OpenSource doesn't change the nature of software, but instead incorporates it into the philosophy of its production. The most fundamental insight is that programming is hard, and that the best way to mitigate the problem is to have lots and lots of smart brains working on it. But open source doesn't seek to do that by prescribing a reductionist, hierarchical breakdown of the required tasks that can be allocated to an army of programmers. Instead, OpenSource suggests that our code should be accessible to everyone, to create the widest possible surface area for potential collaborators.
This leads to an intense, organic, chaotic way of working, but the results are undeniably impressive.
TiddlyWiki is part of a small band of OpenSource projects like Firefox that don't just target software developers, but provide something that end users can use themselves, without any special programming ability.
Here's a video of a presentation I did in 2007 called [["How to Start an Open Source Project"|http://vimeo.com/856110]].
Wikipedia [[defines a Quine|http://en.wikipedia.org/wiki/Quine_(computing)]] as //a computer program which takes no input and produces a copy of its own source code as its only output//.
TiddlyWiki is an unusual example of a practical quine: it is this ability to produce a copy of its own source code that lies at the heart of TiddlyWiki's ability to independently save changes to itself.
[[node.js]] is a downloadable application for your PC, Mac or Linux computer that lets it run JavaScript applications. Unlike JavaScript applications running in a web browser, [[node.js]] code has full access to the file system and other resources of the computer, enabling it to perform the roles that have traditionally been the preserve of languages like Java, PHP and Python. See http://nodejs.org/ for more details.
For TiddlyWiki, [[node.js]] means that we can have a single code base that can run in the browser or on the server, giving great flexibility in how it is used.
For end users, [[node.js]] is no more complicated to install than a web browser, but unlocks powerful capabilities such as the ability to run TiddlyWiki as a web server that you can connect to from other devices.
See [[TiddlyWiki5 Node Edition]] for more details.
Tiddlers can be stored in text files in several different formats. Files containing single tiddlers can also have an auxiliary `.meta` file formatted as a sequence of name:value pairs:
```
title: TheTitle
modifier: someone
```
!! ~TiddlyWeb-style .tid files
These files consist of a sequence of lines containing name:value pairs, a blank line and then the text of the tiddler. For example:
```
title: MyTiddler
modifier: Jeremy
This is the text of my tiddler.
```
//The ContentType `application/x-tiddler` is used internally for these files//
!! TiddlyWiki `<DIV>` .tiddler files
Modern `*.tiddler` files look like this:
```
<div title="AnotherExampleStyleSheet" modifier="blaine" created="201102111106" modified="201102111310" tags="examples" creator="psd">
<pre>Note that there is an embedded <pre> tag, and line feeds are not escaped.
And, weirdly, there is no HTML encoding of the body.</pre>
</div>
```
These `*.tiddler` files are therefore not quite the same as the tiddlers found inside a TiddlyWiki HTML file, where the body is HTML encoded in the expected way.
Older `*.tiddler` files more closely matched the store format used by TiddlyWiki at the time:
```
<div tiddler="AnotherExampleStyleSheet" modifier="JeremyRuston" modified="200508181432" created="200508181432" tags="examples">This is an old-school .tiddler file, without an embedded <pre> tag.\nNote how the body is "HTML encoded" and new lines are escaped to \\n</div>
```
//The ContentType `application/x-tiddler-html-div` is used internally for these files//
!! ~TiddlyWeb-style JSON files
These files are a straightforward array of hashmaps of name:value fields. Currently only these known fields are processed: `title`, `text`, `created`, `creator`, `modified`, `modifier`, `type` and `tags`.
//The ContentType `application/json` is used internally for these files//
!! TiddlyWiki HTML files
TiddlyWiki HTML files contain a collection of tiddlers encoded in `<DIV>` format.
//The ContentType `application/vnd.tiddlywiki2` is used internally for these files//
TiddlyWiki5 can be used on the command line to perform an extensive set of operations based on tiddlers, TiddlerFiles and TiddlyWikiFiles. For example, this loads the tiddlers from a TiddlyWiki HTML file and then saves one of them in HTML:
```
node tiddlywiki.js --verbose --load mywiki.html --savetiddler ReadMe ./readme.html
```
In order to use TiddlyWiki5 on the command line you must first install node.js:
http://nodejs.org/
!!Usage
Running `tiddlywiki.js` from the command line boots the TiddlyWiki kernel, loads the core plugins and establishes an empty wiki store. It then sequentially processes the command line arguments from left to right. The arguments are separated with spaces.
The first argument is the optional path to the WikiDirectory to be loaded. If not present, then the current directory is used.
The commands and their individual arguments follow, each command being identified by the prefix `--`.
```
node tiddlywiki.js [<wikipath>] [--<command> [<arg>[,<arg>]]]
```
!! Batch Files
For trying TiddlyWiki5 out under node.js, several batch files are provided:
!!! `bld.sh` builds tw5.com
This batch file builds several variants of TiddlyWiki5 for deployment on tiddlywiki.com.
By default, files are output to a folder called `jermolene.github.com` in the same directory as the main TiddlyWiki5 directory. You will need to create the directory before running the batch file. For example:
```
* /TiddlyWork/ - Directory for working with TiddlyWiki5
* /TiddlyWork/TiddlyWiki5/ - Directory containing the TiddlyWiki5 repo from GitHub
* /TiddlyWork/jermolene.github.com/ - Directory for output files
```
You can override the build output directory by defining the environment variable `TW5_BUILD_OUTPUT`. The easiest way to do this is to create a personal batch file to invoke TiddlyWik5i that first sets the environment variable and then invokes `bld.sh`.
The files output by `bld.sh` are:
* `readme.md` main readme file, output to the TiddlyWiki5 directory
* `index.html` TiddlyWiki5 standalone HTML file with content from the `tw5.com` edition
* `empty.html` TiddlyWiki5 standalone HTML file with no content
* `encrypted.html` TiddlyWiki5 standalone HTML file encrypted with the password `password`
* `static.html` static HTML version of the DefaultTiddlers of the `tw5.com` edition
* `static/*.html` and `static/static.css` static HTML versions of individual tiddlers
!!! `serve.sh` serves tw5.com
This batch file starts TiddlyWiki5 running as an HTTP server with the content from the `clientserver` edition. By default, the script serves on port 8080.
To experiment with this configuration, run the script and then visit `http://0.0.0.0:8080` in a browser. Currently changes do get synced to the server but the server doesn't yet save the changes back to the file system. Thus the best way to experiment with this edition is by visiting it in two different browsers, exploring how the changes made in one browser propogate to the other.
!!! `wbld.sh` builds TiddlyWiki5 for TiddlyWeb
This batch file builds and deploys the code for [[TiddlyWiki5 in the Sky for TiddlyWeb]]. If you want to experiment with your own builds of TiddlyWiki5 for TiddlyWeb you could use this batch file as a base.
!!! `2bld.sh` builds TiddlyWiki 2.6.5
This batch file builds TiddlyWiki 2.6.5 from the original source and then uses the `opendiff` program to display the differences between them.
!!Commands
The following commands are available:
<$list filter="[tag[command]sort[title]]">
!!! <$view field="title" format="link"/>
<$view field="text" format="wikified"/>
</$list>
The standalone edition of TiddlyWiki5 is a single HTML file that contains both your content and the JavaScript code needed to provide a user interface for viewing and editting it. Your changes are preserved by generating an updated HTML file which can be saved in various ways, depending on your browser and configuration:
* Using the TiddlySpot upload service (or compatible)
* Using the Firefox extension TiddlyFox changes can be saved directly to the file system, so that your TiddlyWiki documents are updated in place
* Using the HTML `<a>` element letting the user manually save the modified file
** Recent browsers supporting the `download` attribute can automatically force the download at the cost of losing control of the location of the downloaded file
See these guides for different ways of using the standalone edition of TiddlyWiki5:
* [[How to use TiddlyWiki5 as a standalone HTML file]]
* [[How to use TiddlyWiki5 as a standalone HTML file with TiddlyFox]]
* [[How to use TiddlyWiki5 as a standalone HTML file with encryption]]
TiddlyWiki5 can be used to generate a static HTML representation of a TiddlyWiki that doesn't need JavaScript.
! Example
You can explore a static representation of the TiddlyWiki5 site at <a href="static.html">static.html</a>. That file is a static representation of the current DefaultTiddlers. Any tiddlers that it links to are referred to via URLs of the form `/static/HelloThere.html` that point to HTML representations of individual tiddlers. The tiddler HTML files reference a `static.css` stylesheet file.
The included `bld.sh` script includes these commands that are involved in generating the sample static version of the TiddlyWiki5 site:
```
--savetiddler $:/core/templates/static.template.html $TW5_BUILD_OUTPUT/static.html text/plain \
--savetiddler $:/core/templates/static.template.css $TW5_BUILD_OUTPUT/static/static.css text/plain \
--savetiddlers [!is[system]] $:/core/templates/static.tiddler.html $TW5_BUILD_OUTPUT/static text/plain \
```
The first SaveTiddlerCommand saves the static version of the DefaulTiddlers, the second saves the stylesheet, and the final SaveTiddlersCommand generates the HTML representations of individual tiddlers.
The TiddlyWiki5 in the Sky for TiddlyWeb allows content to be synchronised between TiddlyWiki5 running in the browser and a TiddlyWeb (or TiddlySpace) server. Features include:
* Lazy loading
* Two way synchronisation between the browser and the server
** Synchronising from the server is accomplished by polling (currently every 60 seconds)
* Throttling so that rapidly changing tiddlers don't overwhelm the server
The implementation is somewhat experimental, and includes these limitations:
* Only works with tiddlers written in TiddlyWiki5 WikiText. Tiddlers in the old syntax will be parsed as TiddlyWiki5 syntax
* New tiddlers are not saved to the server
* No way to delete tiddlers
To try out TiddlyWiki5 in the Sky for TiddlyWeb:
# If necessary, create an account at http://tiddlyspace.com/
# Create a new space, eg `myspace`
# Include the space `tw5tiddlyweb`
# Visit `http://myspace.tiddlyspace.com/tw5`
! On desktop browsers
# Right-click on this link to an empty TiddlyWiki5 file and select "Save Link" to save it to your hard drive:
#* http://five.tiddlywiki.com/empty
# Open the file in your browser
# Make some changes to it. For example:
#* Create new tiddlers by clicking the `New` button in the left sidebar
#* Edit existing tiddlers by clicking the `Edit` button at their upper right
# Save your changes by clicking the `Save` button in the left sidebar. What happens next depends on your browser:
## Newer browsers will ask for confirmation and then begin downloading your newly modified TiddlyWiki file, placing it in the default `Downloads` directory.
## For older browsers, TiddlyWiki displays a dialogue including a link that you need to right-click and save
! On mobile browsers
# Visit http://five.tiddlywiki.com/empty in your browser
# Make some changes. For example:
#* Create new tiddlers by clicking the `New` button in the left sidebar
#* Edit existing tiddlers by clicking the `Edit` button at their upper right
# Save your changes by clicking the `Save` button in the left sidebar
# TiddlyWiki displays a dialogue including a download link.
## If your browser allows, add the link as a bookmark
## Otherwise, open the link to open the page in a new browser tab, and then bookmark that page
To re-open your file, simply open the bookmark.
TiddlyFox is an extension for Mozilla Firefox that allows TiddlyWiki5 to save changes directly to the file system. It can be downloaded from: https://github.com/TiddlyWiki/TiddlyFox/raw/master/tiddlyfox.xpi
# Right-click on this link to an empty TiddlyWiki5 file and select "Save Link" to save it to your hard drive:
#* http://five.tiddlywiki.com/empty
# Open the file in your browser. If this is the first time you've used a file with this name and location you will see a confirmation dialogue from TiddlyFox
# Make some changes to it. For example:
#* Create new tiddlers by clicking the `New` button in the left sidebar
#* Edit existing tiddlers by clicking the `Edit` button at their upper right
# Save your changes by clicking the `Save` button in the left sidebar
With TiddlyFox, your changes are directly applied to the original file that you opened in your browser.
[[TiddlyWiki5 Standalone Edition]] allows content to be encrypted using the [[Stanford JavaScript Crypto Library]].
1. Scroll to the bottom of the page where you should see the words "This wiki is not encrypted" and a button labelled "Set password"
2. Click "Set password"
3. Type a password and click the "Set" button (or use the enter key)
4. The control panel should now say "This wiki is encrypted" with buttons for changing and clearing the password
5. Save the wiki using the "Save" button in the left sidebar
6. Optionally, open the saved file in a text editor and verify that your data is encrypted
/9j/4AAQSkZJRgABAQEASABIAAD/4gxYSUNDX1BST0ZJTEUAAQEAAAxITGlubwIQAABtbnRyUkdCIFhZWiAHzgACAAkABgAxAABhY3NwTVNGVAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUhQICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFjcHJ0AAABUAAAADNkZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAAABRyWFlaAAACGAAAABRnWFlaAAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRkAAACxAAAAIh2dWVkAAADTAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAAACR0ZWNoAAAEMAAAAAxyVFJDAAAEPAAACAxnVFJDAAAEPAAACAxiVFJDAAAEPAAACAx0ZXh0AAAAAENvcHlyaWdodCAoYykgMTk5OCBIZXdsZXR0LVBhY2thcmQgQ29tcGFueQAAZGVzYwAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAAABOk/gAUXy4AEM8UAAPtzAAEEwsAA1yeAAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAoAC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCfAKQAqQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwENARMBGQEfASUBKwEyATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHhAekB8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLBAssC1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkHKwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQCSUJOglPCWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkLUQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3DDd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4QmxC5ENcQ9RETETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOkE8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoXHRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrFGuwbFBs7G2MbihuyG9ocAhwqHFIcexyjHMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEcIUghdSGhIc4h+yInIlUigiKvIt0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3JicmVyaHJrcm6CcYJ0kneierJ9woDSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2K2krnSvRLAUsOSxuLKIs1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGCMbox8jIqMmMymzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQOIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUSRVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0uaS+JMKkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1NfU6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqmWvVbRVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GNDY5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr/2xXbK9tCG1gbbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTMdSh1hXXhdj52m3b4d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gEiGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/jmaOzo82j56QBpBukNaRP5GokhGSepLjk02TtpQglIqU9JVflcmWNJaflwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopajBqN2o+akVqTHpTilqaYapoum/adup+CoUqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACwdbDqsWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1uy67p7whvJu9Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6ybnKOMq3yzbLtsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO1dHWVdbY11zX4Nhk2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj4+vkc+T85YTmDeaW5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/8ozzGfOn9DT0wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t////2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCACHAPADAREAAhEBAxEB/8QAHQAAAgIDAQEBAAAAAAAAAAAABQYEBwIDCAEACf/EAD4QAAIBAwMCBAQEBQIEBgMAAAECAwQFEQYSIQAxBxMiQQgUUWEVIzJxFkJSgaGRsSTB0fAlM2KCkuEXNHL/xAAbAQACAwEBAQAAAAAAAAAAAAADBAECBQAGB//EADYRAAEEAAQCCQQCAgIDAQEAAAEAAgMRBBIhMUFRBRMiYXGBkaHwFLHB0TLhI/EVQiQzUgay/9oADAMBAAIRAxEAPwAnQ2O6NCCiTMpOOPf3yMHnqDLGOKUEUhGgR22WW6OqKFVMZ5mfbj+2eegOlYEZsLyUw0+201KCbyJGYYbDdhnoJcXjRXDcp7SNp4hxWajl+UjVps919+f+fQPpy/8Akjde1uyI2XxWnkXzZqaJ2ZjgjgHnqrsE3gVAxWmyzl17XVJMsb+Xu9WAO/PbHVxhmDQoZxBOyKWvX1XFGokUOB6iQeBn26o7Dt4K7ZuYRsavaqgAdds3G4oPv0EQUUXrQs01fPHMy5DDuRjkcdX6kFV6xS5b1NPEvlROshOCwOQPv1wjGxXZ+IR+xGVqUNK4KkZ59j0u5rQaCICSLKKEAjggjqC1da17liVi7AAd+c9Q1pXErA3GlAOZR9DkdMZDyVMwUGWvpN2Ywuf36IA4bqpIWMlfI6jYq4z3z1OULrK8hlqnP6CxH0PUEBdZUiOeVxhgI/ux6oQOCtfNetGc+qVcHrlyjTSxEbDIAc9x1FFSozxxIRtm++Aee/8A99QbPBRS9mgoptokc7sHkt0A5hsiaFao7ZSCoUQTbCf79WDnqMrVFudMkib1ljlCNt246uBn4Kp7OyAVdanzIEoJxjBAxngnnoxjNaIYIG6jGrp3ll3qwUHOD2/2+o6GI3BELmlaZ66FG5U7Pc7gcHH+D0QRuVC4IJdbnFKyOjPJtVmYs36Txxn7gnGe3RWMI3VHUUIDL5ylmCF+MZxnjkdNEaIVKFW3aQ7zTzRkL6SRzg5+vXCMcQuOimLpWpIEyXdaeAKSpZcHP02j27dZvXgaZVqGInUOWccBtaSyz3GkqI4AHklmiIXaBn9R7fv7dcX3sCFAbXEFc9eAHijX+O3jZq1ko6am0/Qw74HbdsEQZkUtz+pydwx/y6al/wAMY1VOrzEEjddJPoeCOLKJAc4I2McfbI6XGId3oZw7eSyp9ETlBsNPGRlhyxyOr/UBDOH5KfHo24U9PuZ6fcTnaGAJHcDkf94HXfUNKr1BC3/gtTA6eYIB7lQQT/t/v1PWAqDEQidDbxK6DzIogPYHHVS9SGE8UU/h6niAd6xGc5OTx/z6r1h5K3VgblErTFFGRiYSY4x3UdVslEoAIu0qYKhvT9Pr1IaqErAmQ54JAHBzj+/VqCjVR6h5mG3kj2z7dEFcENyhyU7ucEHnuR1a0OiVlDbog+XYBe+B7+3VS48FcNC9mRWYqjMVXnAbHVBXFXPcsqOSo3NhigzjOO3VtFXULOtinkxtf98+/XWOKnVaHhmIHmSH/wBvUZgpynivYaeR5AACTwPoB+5Pt1UuVgOa5P8AFH4hL1W61jl0pHGlBa5XWnrZWJSqYHEh2DGY2AwN2eOcAkdZL8cQezsvW4foZxjzSDU+39q7NDeIFJ4kWmOtpC1JVFQtRRM+Wp5Ppn3HurY5XnggjrQhxDJm2N1gYvBS4N+R+3Ap3paWV5BulYe+/sQP+89MBwSNFfPTCHeGOSxPBXAxzz12ddlQWrpAzJI0ihhz2/SOeP8ATqwf3KCK4qq9b+M2n7DqOj0rZfO1VrCtnSkittv4ihmcgKJ5+VTB5IUMwUE4HVTMG7owiLk6VVPTQQKlXLBU1kWBM8GRG0mBuKg87c5xnPA+vRWucdUE5Roh9XVUNNCy7G2jC8HJ7/XowDkMvaoMVZQ5O9SykhiF74x7Z49+ucHnYrmvZxQ66VtCaktHGrFmAU44OeOfqfr+/t1zGP4lc6SPgEzw6YZBvkr98JXBBIUgY7AcZ6xevvYLZLFXPxOVS6Z8DNTVttqh5zQCnwBwRIwjOP8A5n/TosTnOeAQhvaA2wqc+A3T8FNoLVN1cfm1l0jpAUGcRRwKdp+nqk6cxDiHAKhbm8l1MssVOlGzTyvvyCFBwox2wfpwOlxZQzQU2CSokYtF69oyPNbjP746tYG6HROy20q1kgbz6lQyEkhyQQM/4GOuzDgFXK7iVsqAKuBk9SntvD9vf/PBx9+uD6KqWohbrS0iRytMXyMlQe/HHXF/BRkRanoYt4BcEYAB4JJ67MoyhG6SCGGPKg5xzhfv11qaUpIUXBVR/b69+ptdXJfM7xtxnaQcY5wepVbXhqDnOAT9weuUWvRJkgnAPfPUrrX25ZAFIHP1HPUKVmgWLJwpP7dcptZsyKScDB5HU0otaJargkL11KM1LQtbmT1DPsPp1GVTnS54o6imsPh7f6uDbFM9JJTwu5x+bIhVF+5OT2/f26TxDxGw960cDH1s7B3gr8vodU1dffYrdS/KUgDsVnrnKKoByzs38q45P1HselPp25S4r1H18hfkbQHerA0X4iXTQniZTUlBWC8UldTBZ3ppAkcyZ4aEgfqHcbu/I7E9AylkZkacpB+WuneJ5Wwv7QIv/Ss+3/EbcB8xXUV7+XpYECyQXVdpjQSIsg3A8NyWwQc7SfbHRmSykgOKz5MPhspLW7eITenxDVWo6G4UkFwtkN2oXkhdIqxUWSRCwZQx5XIRmyR7MOAAervnmaB2d+NfhBZg8MXHtXV6WqIqvHDU/iFVVFrq65rPSyTtHMYGfzhGD2LFuM/+nGcAE8Y6mWSRjf5X6D7K2GhilkytaG+591fvw8+Gds05p646vSHNdK0lvts5GWhjPE8xxnDSbtn1C7+fV1GEzPdb1HSnVw1FD4k+KsgwosLRxqGxzjHYDI/063bXl8oKE1dEgLEKDnGQB2P7H7dEDkMt5INGkwqJ8hyP6lHcfT9+i3oqZVBuGX8wSrh1JKso9W3A/wBT1YHkoIVoyODIH8rew5JKZ9+3368vdaWvR2VXHxQ25b34H6gpkhjV2SORgVwwCOGHHbB2+/vjnokJIfYVX6tpU38BetKWxVt60vVVafL3aSOsogwIMM8QKyxHPYsrZBHfYPc4DmLjLmh6Cw0u2qmOnDLGsSsEBI3AHHPGf36yrKKCsU09b68tM6PGp59JIz/bPRhI4DdUIC002lLWWyBJIBkhi3b+3VxM4qpjbyW+CxUSgboZTk5w3YH/ALPVxI4qhY1b/wANp0y5i8tAMZ3EAAdWEh5qpYOSjm42qNZPKZZ2Gc+S4YN+xGRnnscdEsqmQIVe7oYggpZjGrsEBbIaPIPbtzkA4P8ArjPVszW/yVgwu2CXv4wvlJU00jSxtJjAaRCqsfbcvurHPP8AKSRnk9QJYyr9S7dF4vFvy1ikrrK8ETMolRSS8ee5XIwwUkcfqAYcfXg9p2co6l3JMCa7tvks3y8jlYvNIg9TMvOSF7+3bn+/RLF0ChFhAulPt19oLpualnWXaAxwDnaezY+mRg/Q98dWQi08kQnmWniWVtxjPYqCwP8Ap1YFRSF1+pKSihFQokqoj6h5A3bhkBgD2yMg4Pf27jqwHNRR4KFctZU6OYKcGSd4xLAwQlJAT/Y8YJIHOFcd1x1YC9SVBB2WVq1NR31UGySllaJpmhlIygVgHHH9OQf2Ofr1BBGygg8UYkptu7229UK6lQXxY6jglOi9ITRrHSX2oenkq2YOI2K5QFf5CTgKc889sDOPiSA4yDdoteh6PH/U7O09lxZrPRtPWa51FX3KZKaknqHipVmpG/WrFWCSA4JjCjCkqSCGGR10M1QNDbvxH2PPn5LWnia6d7n1R5j7Vy/tDqO0W2kpKWWjjuQmplHydwlqQgjTJ3qibchd5ONvbs3UvlLyQa13CXDGNDXNvTY38+bqHcaBrhbLnVT1odIYmddz4eZlDZDYHHYkZPseeeLQgRloA39ktOXTBxc7+0sXOOqrRaMAz1VaklZNtQr+ZPM0i5J7ehlIHcbift1qucO13fhZbmmwAiOkKuopDWgVrcy+R5rIWaPGQXIAJ5UHj/PfpLEMDiNE/gpzE4676LtLUPiPdvDzTlitFqpoquCG1UjGPBJDvEsm5iSc7ixIOB3xxjlro+ON0YJ0WZ0pLIZ3O3spJb4htU+Yiw0MM20sJgijGT2xx7DrZMDK1WGJ3ngk7Vfj3rK4VRWOVKCNhtEQU/TBJPHRo4GVzQnzPJ5JKfxV1YlTLKbnIsjbVPlseAOOOejGIUhh7uaIW3xz1Rb3y1c1Rg4/NG/++DnoXU3wV+tcF1L4cfEno3UiW6G5XOntdfNGxnSRWSNHBPux4yPbnrys2DljJoWF6dmIikA7VHvVrVlRpDVdGaY3e11tPUgp5TVCgOMYIHsc5x2PfpMZmG6Rqvv9FwTrvQFf4C68r4op1NsnImo5ptzo8KkMFDLyhUALn1Y2qQMcHXixIlFOQ3xlosLqzwf+Iy26ko6e26wmjtF6iXY87uDE2Nu1ncEghlZG8xcqdwLbc5Kk2Gc05mbKrXXougqA07U/mQzJPHt3b4nDLj9xkdux9+kbKsQplvoYw0YBERcZCAj1f9epbR3UOtZ1txorOk0lZVJCgPJkPb7H6H9+jAa0h6pK1DrmzeW8sKmr9G0tSu0UijuMgN/kqf7dEALd9FYC9AuePEHx4prS0TUk8lZPIpPkxgSyOuTn7Ecngsc988dWFuOWtEwGBgs7qv6r4kL1Np2eKlesQtiOalVgXHcIVIHJxjgEHHGDwOhmIXqUdr2gWG6pEq/Fa+Xe2qsdcFETjBVt2ARuyQzKBjPIOOxPGD0bq42uoqvWvItqLWjx61tYIxGKtJaCVChG4pI5QgDHHpOcHAxj2JwOoMcbiaNFUD3NoubaNWf4nLxp+/vFWwCtt6n0SCVlWM57vgenLZOcYXB4I56uImu7j8+WqF9acEZuHxf2gLEUpmmdsgSsqOITnkK8YB245wB3xwDkdcMO66BXdYzVPlg+JWtrKCWrSWaKk2KZf1BkJY+tVJBZORlsk98rkdEMD2jslDzsJ1C0w/EcdQ7qWPTtU8RYpJvkWOSAbifM8svl0YHtyOc85OFHxyR/ycm2Bjz2QgGpviGpDLBa0mp6ZxIGajSYHeck7k53Bh3yWG08fQmY43u1tc8xsNEapp054kS36/UtDbKq3W2roT5kj1ReDzMqORlcSEoSCFzuH+Z7cTS8nRDLY3nKAn2/+O+n9L2+htN41DSSXKWVVijhm3SKecI+DnB4G76HnsepbM+S8rUF2HYwgkqv/F3Udn1/pWkvdApr2o2nhHkyg+TVBVDDIPdQRkc4yM98DJxDXMkcHaflbuCAyaa8lRtrlsAtc9PeYo57nKzPToacfzKd7MAeH9tw5PH0z0jI+QOuLbitiKONzMs1Wb+eKEHw2kgghhcp5rKwhjMhHBO/nJweOMAgds5A6Zbi8xtKP6PLRSG3PwnudXpW81H4eIa+KKSRoqfcTNFtA9IHGUxnC443d+nm4oB7bOmizn4N2QkDtapZ8VNN1GmtN6IuMDD5istyrURlmP6Nvlkftl/f6DtjprBTNldI13A6JbGwdS2Nw4jVe2bRFXX1M1oo4nkuE1DRwxQQ49VTLGjMpJzyS+M4wOPbqXyteM18T9ygNhc1+XuH2BXR3jzV0VJrepjo6ymC06QwCRVWVmSOJEChmDAgFTyPYdbnR0Z6kWF53pGQGUniqor9VVpMZMtOvlnMapTRDH9wv29+tYQN+FZJldf9BKVZVyV0hV3dxncCzbj0wGgbIVkqA8IX+UlT9ByOrKbWlCCBGIgGzkMeuoLljKiQRx7qNUEgyuSSSPtzjrOBvYpolTrVBEK2NoElES5VQZO2MZIxx1Dia1XDfRW5DfIdWaWFi1EGmgmmMsdRSzKksbHC+YuRsz9RwD79+sabD27OzdbUGJLRkfsVXkfhhqrw8xNHVO9nLEQ1lOytEycjacE7CRnKk++M4x0vJi60IorTZD1mrTYRzTfjXUWb/gqi3JO6jy446GqEbDngo4bkd+GznJBx0XQtu0LKb1Gq32fxfrZZ3juFS9POpYRNNK1Oq+k4VZW9JYHAIJGO4YgEdRkDhpStdbgqRV+Ol7UxRRUvzc4jIaWcs5Vs+rDgkSD/AOI5wPr1R+n/AG0VmtH/AM6pW1F4qX+/1hoTdpDFK5iZY9wihZsMu7AYg+kj9iSftRjGVncFdz3A5WlS6vTs1Jaxdq6X5R8tIccyMWByrkEHaBu4+pOO/QTN2sjQjiAhnWPNKt7lFNQLGoFTWQSbfLgM7LGVBymGGOQSQM5BU88gEvtc141FUksuVaaEy/Ls9JWo00kGQtOjOFZSTIjZA2sByc8cHAweruYx2hVRpqFLstNUy0n4U0iVTV0I8jJQyM4OSqBs5yATx3PHJIzV2TNbRqu2FHipaWq/2WkuEUNUa5BsHqSQy7SwMn6c/p7kOBuAyOc4gZH046KxDm9lEqGx1dv1DR+XRXO2xKwkmuNDOKiKrQ5KErGM8rggM+QOO/UGUMFsdajqySA4K1rHo8rqBFElJto8/wDiFFRlXZZE9DuoU7SwOGP1H7YUlxVtGiaiwxzapJv094r7tPTUENO9JS7sNGERp0ydwV1BI2jB2sx/ScccdTG4FtuVZGuzlreC2z6DWzWmSsrnkE02UpSZCAWB9IIxxjP6ic4I4yORnEBzsrEX6UtZneh9op72EuUs1e1VRQHzIqYkKssajAJIztIIxgqPu3bEunAAYOKhkDrLzw90jV1TXXC8yXPfIzxFn9IYiIq39e05JHJxnk889NtIaA290kQ5zsys7QniDUWnQr2igiWaecPXRliki75B+YqoM+WBnd7tuJJyR1nYuPO7M7bZamElLAQ0a7oNYtB6z1VKop9ZWizyO5ApKeb8+NT3J3qGyAe/sPp0rJNhIBZhLu87e2i0IYsVNtMG93H9orovSz6c1mabXt5vckRXZBcYbgGjeM5GYshs889xjHQppmSsDsOxo5itfNTDDJHI5uJebqgb0SzrHQutNKI91tVNda9bay1H8R26R/IcL3MvO5S4IyjDHcc8E6WHxGHlOWRwAP8A1I18uGnNZsuGxOHdmaCa1sfL8QrT8U5KTxEtmirzC0dMt0o6eSaGMpiFmbkY9gN2P3Hb26xorgkkZytbE7PqI438DXvSSNDatvV8+ICz1tkqKi3UEF0dadDujpkhhBCxkY2yeYkOMYJJlY54GN5kMTIcjwLNd5s/al5+SaR8rng00X4UE8XvW9Hfa+apq7VQU4lZn2qgfOSckYAIIJ79+e/Xo48M+IZWvK8lLO2UkloS9cKuzSxPFJT0/l4JVoMo+cHAJyemmtlGoOqU7G1JdevtojxFSO0a9yZeT/jovb5qunJDZmozCHaORX3Y2q5PH16k5tguAWuMUomZ2qC8QBIG3BB9s46guNbLl8sZqadmi8xVTBXfyMH/AG6QBopkiwt9vluFMcNSeYhJUebEcZ98kd/26McjuOqpq1HhBPFSqVHysrqNqMDjP1UH26po41upsjZG9N+Id0sEgWpaStKAqDE4CH6gjbkjsO/QZcLHLwR4sW+I7ppshsWr6/8AEbrpm1UA2AtLDTGn28ElmkDqpP0OD9cHGDlz4BgGVrj5H8LXw/SUhOZwHmPymJvDzw3nuL1X4ldKCnC+qlE0cu1yeM7huA7YB9R4yBkdZRwWJaKY72WuOkMOaL2C/HT0Qys8ONIR1EYt9dVXCaVxHHC4SJDzn1FRkj7BT35+nVRhMRVyOoDuVz0jh77DAT4qPr3Q9q07ZIxRxPTVCfnS72Yuv3ZVGEXAOMHOOT0Mt6s6FHjkM4OYAUqloWuV+dpK/atLE4lEMSDG0MO2DuxjjPGP9OjveyMdkaoTWvm/kdE8Ut+0HVxUhlAM0B2YWIeakeR6crgryoIJGc/QdKN+pJNaX6FOl2F0rWvUJP19ZqrS2q4rxY7aRaKtjLLOwVkaT/0twAzIwGCQCcAHkdO4d4ezK91OCRxUfVyZ2N7J9FC1BYbTXeW7yUtwhqFD0R8pEaHcynDAcr/Nknjtxk4DUUtsdpR4paVgBFGwdvnNNdnvlFqWG6ebJM18tsQjWpa3iCojfaxCTqCd7rsYEgFXABP6ulJQ9ha69Hd+nl3ceYTUeVzXNA1G2mvn3rXZ71eaWg+T+XgeWQcNE4jhY44O5FC7f2PB9x1EjGh+66OR5ZQCYfCieczfi1SsEvzG2GGWuqyhKHJ9O8naq4z3wccZ6HiqAyouFBJzFa6FKObV2oK93QvBNsZo12xlwMiMPsBdhuzjJxtJHBA6o9xELaRGNBncaXniHqAVEtBaUvlJQpTOBJFKCxq5XU/lrGo3NnscDH7Y6Hh2E28Nv9I2KeCRHmA9fRIHiTVVNrq6yg8qnnpI4IklpbWymCkJONrFiXQnIOB9ewz03hmh/bPvx/BSOKcWEx6VWw2Hrqh2lKumtuolWW2otPGEE0m30t6du5izAxnnBKgE8dz0SXM6O83ggwFrJBmGnz0W+011bapRZ7NbI46qmqHaCZpGKzITgLjgkFTnAJ7++OqPyvGd53CvG58bskY1B0Vp0vhxpvXdFBWx0tJWXqNdrwyxiOORsfoVlfcQCO6lv36yHSTQktBIC3GxwTAPLQT8+bqRpbwVsuqxWW2Oeo03cYTlrf8AMOy7v6kL7yR+2Djqr8RIwhxOYc6H9e6gxROblDC09x/YKZ7nom56TgistDUK0NUvy1RNDUOZ/KKkE4MYUnOCAx/bHWeXiQlztx3f2teIgABo053r9t1z1fYrn4aamvenaqgq66CjZIYvLhMsYRwGUK6jGct277vb3O+yMYuNkwIBO+vEdywXukwr5ImsLmDbTge/4VcOh9DXDS9joNT6hqXobnaaeooLfSVEDbafCmIzkrkDaGdRnADMHLenHT2CiE0hcBoT6rFx0pjYGOPaArw5Ku7vbzS1EsiCMwRv5TLEwzESASpUndwdw5Axjr27H3oV4d7K1QqoZQQSw3DgL0VCUSadioDInkrzhUxj7/v1Qq4Q6SoJkVIkMj5woK8nqCrBa0LqjRvApYHPqODzn6dVvvUqVTrVW2XypmRFI9Ssx/x7dIZmvFhHIINFNElRa0pZDQ3qd4GIeGGpYh0fHqww4PSzTIT2268wmJAyrjdpyKHTXCv1AkZklqDCqEJNJgAgcY/x00MkWyVdnfut1qBpGIZlkilUqqBtzAn/AKdGJvVDqkWV0DrFM3mOF2qz8hD++eO/XFwJoKQCnzQFFp61VJrLgqzNDuL005ABb3dSTyePfrIxQxUlxxGu9bGFZBGesk1rgmG7eIWi75NbaegVLdLEzSzyiPEjg8bSexUk59J/bHSUOFxUJeZXXy5eSZlnwspb1YrmmHVVxpdVaLM1FSFYogsZkjiO+VudqbzktxyMk/v1l4hrmPAcVtYNzSCRquaL9YYJrhK813qqD8xmEgdo1DYwEA4yx9yce+CTjo8MpAoNsq8sepJdSg6Zr5IaiqjpLhQyoshM719PLOu7kHCRgZyd3AHcfq56NL2yOsbXp+UvGS28hv1V16M8QoNRWSC2yRU1NDUFqaukmj8uOnRf0sx3ZBBxye2ACMgdZE+EdG7ODfJbEGLbI3JXjyVaXzRdJpvxDpLBWGe5LX7nE7IYFplbKuWLAkwsrDK5IycjYcY0IpnSwmRumX56/NVnSQNjlDHa37f0o6VUdoulFqGgp0uE1HMlFUh3aN5MgvSShyTu3RgrxwHRcYyOiWXgxuNXqPyPXXwVMoZUgFgaH8H09wmOyXSgsmoqmmjhmrYZGzP8quWXzF9OQRsVTkg4zngnHHSj43PivZNMkbHKWgXf5UbVWiZdL1dvrrbWtZqetZEmFQ6qAC4ILjGxQfYHJPJwAeuw87ZLZILrZWxEBip8Zq1vv+mobL+EVVPWNdKirrfMnrXqNrRsP5fKbaFHpbBwD7k4xgccpfmaRQGymSIR5HA2SdU0PfKOXW9wqbXaZ6m+U8fydvigjYJ58oO6Z2JJTCDJJC4XdjJPQMhEIaXU06nwHDv/AGmM4dMXAW4aDxPHu8eSoCsqaa46wrIKozU8Ty7qqZGlZy24hX2n9Tk8hjk5IGOOtwAthBGp4bLCeQ6U5tLOu6+ehtT6rmjpaqR4pjs3fLu2Tn+bL7hzjnggg8cZ6i39QCRqFxawy006JpotLml1FSuaaSvNJh6hmnUKYxkui7iS7FCTg+kfc9IumBYRdXtp84p9uHLZBpdb68OXeaWFTW19vuFLZbbNLSUQ8yuS7RnmqgRVcwCQAF2AIXGcEnnt1dpa5hkdrwI77q/BQ4OY4RtNDUg8xV1atvRdbVXB460070VYajAcOxaUFQybpARnIbGOFyMY46yJA0aA2tuEucLcKKtHxW8ItcXGCzVGk77S26WZBPUW2Rw3zEeARjHqVjjBK9wSe46HE+KHWdlg7cwhfUl7w2J+UtOt7HuvdVv/APibVNv03X1upUpdPw08scNDQpUS1lTcDuJkMO5dxkOclmOM57DA6dM8OXMw6cyK8tPwtT/mRh8jJWDK3YNN9+7uJ4k69yM3PxFraquihqqOQzUSIKWPyfy5ICyqA4bO2VELbivIPmA+ZGzKPWYWOPqWuYdDz3v9E/LXy/FYl8073yDUknTbU7eXzRVTrrTc1s1FU0tKhlFMXjiwQzSQq2IzgZ7RlF79k614pQW2SsiVnaoJcS0V9UJIvK8poxkiQYJP0H36KZGtANoIabqkNqWrqJMoJFDDjbyOuzNcoAUWfUdxSMIJChB/oAPQyxu6uCVGRrjVEHyjIzN6Wxhifp/r1FtGimkbqTXysiyVkDQgFvKmK7g2c4x/06y+siGyfeHn+RRm2CnCJJU0VFPTFTuSEshye+ehuk4NcbUtbrZaCFvq9N0z1lNFbLktIsw83bXEtHGo9sgf6DqW4pwaS9vorHC5nAMNXzTMthOmLIGtN9pbhcJonjep81IEjVhg7UPqJOcc9L9cJ3VI0gJsYZ8DbiNnmq6jsl6tUEop6+B4zktlwwOe5z9etMPjes3qZRsFlQ2C7S5aWqoyjHO2Wckk/UY5z1YyMBXDCyu2HujMVFWQI26K2NFs8tQW34HvnI9+huc07Eo4ws3IeqtbS+uILRa4aFahJ33F2DTDdtHcqp9RwPbAGB3zyMWeFz3WBqtqImFoDimvUHhf/F2kZNQ0lN8nRqrSmpkiYhvfcGJ2nP1B+/WFIHQOzHfxW7BM3Ef4z9lzzU6LhtVzb5ysekqadXmhRE8tiMehH53Pu9gAO+SVHWm3EmRtZbCUdhxG7+WqeKQwVVPQT22y0sOqbewelqapwsUrqSWO3ABC/wBWQC2BknpIEsJLiS06ad6acBIAGtAcOai+Idcuq7THJqAVVPq4U4Cy3KoEssrgGQxKcbVQbSxCjAAHYnros2HfcX8ONfnvUyZJo6eKeNv67kp6ottwW5SVVwpI5WuBqYqymePdU0dRH+cG3A43q2drrwySr3JBDUb2llM2FVroRt78RzCWkjcHnMNTd6ag7+3DuKM2W92up0NLfairSqqKOpezq4p9pk2FcKGHpctGy7mKZHl5zyehvY4SiIAgEZvDf8jTVFY4GLrXVY0Hz+lsv0t71RdqG3wSmloZYBs85923IG5AShPmBTwVXgqQD7EEBjjzO4o2IEsuVvD8orfaaK13i0LFLVmC3wbIqSlADeo7QzyScZAz68c9vY9CiIc15dWp+UAjTNLXsDL0HyyUpXPVFTb7HqCjsltanlqd0stwmqJHxHnG9RkAuSBhtoX37Ly22Nsj2F5scq+eaTdK6Njwxu/G/fx5KudKWuvuVVKtqpZpQkxlQq7YkCIBiUkktznA7/q59hq4h7GNBfy+UsuNj5HUwWmfTWsajR9RVxXvSlRR0c+yIvtELNJ7Asc5z32jGMgYA7qSwMxABhksjhum4ZjhiesZofJMlYkN6o5LlQU6V25s0tK9SrIHHMhYEn0KBnLD15wM9zmEmN2SQ1zNcP2fZaYAlHWRi+Qvjx8h78FnT2C6V9uqqemqYq+ihqWmtqOCgpqgFmIzyQG3tlT9eehGdgIzCiRR7witw8jmEMNgG29x/u9lbPw+ab1Ffr6UraKO30/lpVl6nmFCCAVPsMGMY/8A7b6joM5iNBjrr7KWvkiYXTNq/wDX9rZ8VHizBa9Z1KB0qKWKmWGmtxUx+U+HTzVbguF9GQCdrFCDg9a0WEBY2Vo7Xv8A67l4+eZzHEDVc60fi5dbnSn8YuMrV0Z82nuETMkkUQQK0Y28FchW2nj0nGD0xPhw8HI3X0Swme49o7K+paatvVFBdUMNWtREPNRJGZpTtAySTwSAP+x1htx+JgwDAxrswNWaOgO/Mgj0Wm7BOmk64EFp4DwQO66ksVtu1HR3mW2yeXHFG4kYqAg2gAHGCOOT2PGejdK4rETsH0Dnh7b1btZ4Hn3JeKKOKXLiMpGiWr9fdKW62VUlHSNflr5XSnuSTNF8tCrD9Q25DA8EnOQO/Rx0h0hLNCAcgYO00i859duNc0J+FwzGOd/LNsQf4jv71GsOmJtQmOWy1cci1cmyKYTkBB77sj2/br00nSEDYjK/QN3018EGLoyWUB0ZGvemH+AKyCkVp6qknr4pADSiMOmw5/MWX3PGcEdYTenoXSENa7JV5tteVcFqt6ImjbmcQTy/NoBNY6u3Xupo5o4aUNmRqgSL5LKQSvPO3PbnHJ6ad0rA7DiZhs8uPmlfoJvqOrc2u/hX4VdteKVpVSOrTPBRmT/b79aQutWpHrm3p9lMW8CZtkdxJ2ngyZUEn7Z6kGtcqg4k3V6LdLWOkayzSq8RONyuTn+3RBR0Ck4hpFkqfbKeOujzGobd27DPVHOrdFY+N4RqK3+hImZQr4xA7/qI7cH/AJdB69jdzsiZY3aKTJQ/Kgotpp22pyclcffIP16uJQ7UOVXsa3QBAjNXl/Jq6FHVScPTsQB9mJ4/59H0q2lA6x7dHi/BWr4XWGWdJJPwZZ5Ij5hiki3uucYxJg+W/A+mQfft0F76F2mGkO4K5fEOuulq8MILbWU8kVXXcrBFJN5aJ7tKzcMQoJxyTz+/XlMVIZJdCvTYCMNaXkbBc3a58PrZSUdsMtwaOtqEenNRCAk1Q5GfOcKATgNgD9Kgjkk56aw+IktxaNFGIhjAFnX5qk6XReoKSpP4tY/4kjpIt6V0GZQiA4TzVDYG3OBGB6j/AO4nQ+riIGR2XuKROGlBOZt+CYtO3S06to4KLU1NTXaOneoklrJh5bKzqE2Ace52kgYGMKPfpDExyw2/DOIBrQfdaGHfFN/jnaDvr+FatR4OVcliUCkbeQJ4WLGTKNTmIhs/d35P9IPt1gHHkHTTn43f4W39LGeyTqP1VFKFL4YzWHTsFAUkdKWaav2K/l73aoJIA9typTj36a/5Aukz91e1ftA/4/KzL5+6bK+w3NauopaR4zXzKKelkjQK0eWP5gBO0bV284HIHbJ6SZM3c7cU4+F1UFpuem3scMFqjE12qJEE1wutQ3f6AcjC9yeNx4AwAT0T6hshLzpWgCozDPjbl3vcpR1/bpdP6Cus07qkFTzSqIWldjtwP0DIADFieQAPqenMG7rZ2gbjdK45gjgdeypOy12pLVW0608nzUEMonXz6UxDG3jbx6VyBhcft9/UPEDgS8VfI2vLMdI00FbEvjDpWTS00Op45btdmRt6UsY8tR2O5v0rk555zg9wD1iHBTOlHUaDmfmq2WYyHqqm7R5BZ+HXhTYddM93stRdrbFMhWoikV1LK2WUqWyWzz3wec7QMAAxeMnhqKTK6vP581R8NhMPMOtYXAK5tF+ENZRSCkpopnpQ3r8/kREDAYN7ggc9Yj5HTm+K1w+LCs0Oit3UGorD4NaMhqJKm3SW+TaLjUyFWXazbTkZB2hh7Z/myB3618HC1rgHHU+a8jjMU6dxcdguOfiAuZ1K1SGtFTR0uGqaOVomVal8DDRszYdNm31gKT7huCHmYgukjLXdxBPDn815rFlFDKR32knSnhTftb0tge5yxUNHNLNBDII1LptUOqEDGd/OAfp1EmNiglljw7bcACbujffrt3KYsK6WiDTTY+BXPTW001PBJqamiWoo6ZrdSWyCMQOVYHDsYz+ZLgZ3ZyBnrzjcVhcQzK+UnL46UefKytFsXUavbrtW3+yql8Uda2XV9009aKOwWmnpaqkigkMVbLM9JPkrnfwcLwShzz79emwrDDFJM1uXL3fyG/vzSL3iRwPd41wTXpLT1u1dVQada6i33q30DxG61NOUp2CMAFdVJJJ7k8f56zX4hjmNfM3KHO0o3wvX9o4b1pEY3A3Ry/aArNEWajSKrtDGJmVDTVJMbu59LMxAIUj2I4456yXY4Pk6pxJrXTX0HMLQ+mMUYeCB+/Hkl+kqb7FFHSfOzeRM6LUytEYvKHfhhkds/wBupcYJHEuoHgLu/EbqjJcQym5jXHSq80C1Ixs1t1nWV5N0uc4RI6hZ8I9PxgkLwWHAxj+Xp7CnrZMPFGMrRvpqHd3cVSao2yPccznUAb4f0qmltMtNUyxtNho22lge3X0EOBFrzJk02RiPSTSJlbtEzkkEY/0IJ79BMwHBVzA7AInR+HlzqQwNS1OseTI80ZC9vbB6A/GRM1UhhcT2VlcbBeNLmGV5FqKfH64AfT+/06tFiIsRYGhVHsLN0bhrDHpWkqmejmrVrZsUsayNXrFsVlkdz6PLyCoAwQT/AKYmKj66QgHQen7taEDg2MHjfff+lEodXPc6CooWoZBXu5lSrFQQRGB6UZDkd+dwP26digmbKJjJ2AKy17goMssRjLAy3c79qTvouhpK808VQsTV245ilZGQEAthd7AEkZAGRk9uplmka+q0OxHFWhia5t3ryXRnhfJTW+meuutRHQ6Sp1VzNLHMGWUcqgVmDcYOUAPvngdJ4ktjYG32vx82Wvho3yu7IsKl/EvxjnuvifcqW5XCuu9BtJo6OCPIEf0IyMZzjAGAMjHPCMeHfLEJG0DepJXoTIzDv6oixQ0H5W672Wa76WqbxUyfJXzzDJHUKQPMQndsViScDnPYEjA4G7q0L2xvDBq1VnYZWF50KAUXiJqrRpggNgFzpiR8pTAny2ViPUxwFB9RySMAZPdh04/D4XEmw/KUkyfEwCi2xwT9Z7dada3imNy018pHvWJ6uQeWHl2s6yFjgDJZtv8A95OHiS7BxukjmBA+f7Wq2Vkv/tion7/Nld1i1zDBqQ2+qLVFOiRwyKqEYYfqDcYAw3Y4xgHrBjdiRcjgDEaANj8rPlmHWUHU7dPFRadNXO6z01VHTvU+THUPMjArFGmDw2cDvn+3Wp9EC0kaH8KzOkJWUGnQWgV1/gahl+bfy0jiUpLM0hBODyvtwzMOBzwfpnpl/RrmUBrxKgdKSEHMaS+fGHw7uVVV214qSWgAD7KeIMZQEAWMfuWGT2AbBxk9P/8AFAMzEVWvekB0q/No+z+0E8UKrTnippSst1HJT/i00jPTpGSu0hio2qndR6lG4YO0/bpEh2EmEjWEN4ngmoJxiG9S913suT7pHre8Tz2+ke0VMVJM0MdfEjgso42tGMk4I+hGR3I62WHCsaHvvUXX6VntxMhMbaIaasfPwhtg8DLheLnJNqerVad38yWloAFjnfOAAcgY7nBA+mQDnokvSccTAMONeZ4K0PR73SZpTQ7l0h4ZeAl08N/xzU9LcaiWxRU8NSltA3zzY3iRVRsAhSEbAGcMeDtwcky/8i0NcAHDytFkI6Oc4MJIPsfn9onq34m7xQ2mZ6fTplpbe3li7UlOIoUUgZSRXxsZVYZ5b6ZU9c2To95bCJQXnYDfy58VivfPTpMprjfzRc6eJniQfEGlr6mYGSKsMNVNbnjEMK1hkKyJCoOWXbsbdkHczHHTcHWQShrNAbvTSq0J5G0k57ZAfnHbvXl+uj6nqNN2WOevuktDRCikrK6USVSeUSYEALekBDsPcekdJFzWMfiX9n/+SDufyFd4Jc2MEmvUH8IrDqq826vuVZNHTV1Q0dOJSCWkoWRgA8IUhV5QAsQeGPSBbHI1rWuLd64A6cfLZXEkjHOcRe3l4JRufiVU3eoussay3O+VCyQLKB/+uhB3lc8DIzg9aEXRTYgwO7MYonvPC/NLSYkvcXO3Onh4KJpbwnrNdafoLhZoqIBnZHWrfazbVILFlztHOefcZ6LjOmY+j53xYknht39x38lfD4WSWO2Eb8SivhrpC/W+uue8ebebM3y9bb/MAmlhOVVlz/5g5HqHAGCegdJYjD4iNpZ/63jMHcAdz4d6ZgidHK412mmiO78piu2t6qKju1JI9Pca2ljigp0hi8uaZiPzfzBx5iHHpH9PWPB0fGXxyNBa1xJNmwOWnI8zzWnNiHxh1kEigPz5jkEtaH1xc7dJS2uqo5KiGWItEvIkUMf1FicA5+o7dauP6PhlDp43UQdeXhX6Wdhcc9hayQWOA8VD1Zqiiu2lKineKOmuxlKLLDGG3ncMo7jnt29s9NYPDSw4htaxjXXQ7b+qWdPFLEQRTkhVkVYr+S5UTIMiTYV3KB9ffr17S3dZPZuyFKpo6OlpjUiWomlGApK5UP37DoTi4mq0QzrpVJsotWisIQTJSw+lZRUR7y33AHST4MutWeFIgN6E0PVFJL4YLhWRW6OOsjhpmrpTTMcGBeSQGPBGeR0r1ZyAuNHYXz8kYi3EM1G+nLzUX+KrKGtsUFTHX0ldIk1XBJSuktMwLL5RfOGBBydoxwOlThJsj3BvaF6356f2nDJGHNboRppSEalmjhvtRSW6eKGBPQqoPRjHsetzBu6zDte4EeO6y5mBsrgrG+Gq6WY+IFPa9Rq8a3NPl6eXyg6iUAsqEgblLAEBx2baDkMSCYl4ALGjWrTWFAzeKffGrxIivdRFa6CiuK6etzLNJUQ07OYhydsvbP8AUefpxgdePha+Qk5gL2BPPiF9ByRYZgblJI3IHLgkOi0LZLzDT6k0/PUSVsmHjd5d8jqBg5BGAxzwvYY6u7ESw/8Ajy7D58KuMNFOPqIibX3iLqC9vY7VLPRU70lVTOwtcpIlqJS/pSXPOxSBgcbv24L2CbFG5zTqefADu/ay8e+SQNIFDlxtR9E+LAtNe9vvOKmpfb8/POpjcxh8uBuJwOCoUAYUH3JbpqfA9aA6LQcOKWhxhiJEmq6AtfiXatX+G1VWU1v81amvmjqFJIWMRAbCSQBuyy+jjgAZySOvJYvDDCvEcrtDQ9eCclxfWNzNHP2VGQaqeXxKhpE1bT2W0VG1ZHoWIMlWqlUSQMcA4z6uwwBgHq2Mw+bAucYC9zdgdg29xX23WJHKBiA3OGg71xPff+lbVx8TLXqC23U6duVLUVcW2mhjqQIEr5EAzEedwfjg8BgRg9ePw0GO6PnifOHNFakdotaTueBHuFpSTxytJjIPdsCeXilrWGrrV4kT/gdp0XU2+eGmRJKued4U80Efk4HGFJJ3Hvg9eywM+L6NqaefrGHWtyBRNg8uQSGI6jGZmsjpw8hfL+1DsXhXQWuggqbtUzWit+bVHlSo3oICwDFc/qYgcHHBx9Onn/8A6VmJ6xuEbmptixWvAHkL3QIui25A6Q5TfPSk/wChqfS38U0tZoY101JQVLJVNOxdaidCShIkwTjJwRgcdedwHSXSLnfT9M0XSAFtAWPTSvE6J4QwMbnwuwNHU/79FUPxQ3U+Gmvqmg03M1sWZWqXo6ksYVYkhl3A4VgfZxjt269ngYDM0iYWAaBFX+/ynMRiMgY6MkEjXke8cFUdqv8Aqq0zpqmn1TT3eKJizRSvuVlwAVZF7e3uf3PT8keGf/45iLSUqJp2Hrw665n7hdk13jBQ6j8JdKXOnqZqGYkx1kcX/lhlKb4efc5DRtjB5XIyCMKLCvYJIhV1oSao60f2oxsoe4S8D8IVFeJHitS1doo6RKx46OtqGnCoxZyD7uMZ5I/m56xcB0XO7EPml7T2gC+dctuCQnxLXRiNhoHVImvLlYrnHRVagQVVTKzzww07tUU20hEIBwu1hyNv05563+j4MTCC3NYG2tDnr3pXEGOSnA0T3JBW5rRXammo6qR5kl3RzQ5DqMfXuP79egMRkic2Rulag7JJrHDXakwUWpPwu7RSK8q+dKJah1yZXXOeTn1bj3+o6zZML10RFDQUOQ/VIgeWOsFTbBruig1Tc5I7cKSnnhZKijwZE2g+oAgZBIJAPYbuokwk7MM1vWWee138vyRLZn60t0PBOb6guVPq6S+WCxxpaXjLfLIhjhVPJCq0hGAWGBx7/XrzYw0LsKMLipTnvfc3d6dyPnd1plhb2fbbimWz+It41BRwySw0Md1mgmjZ6d9nZcICSMleMgDPbrLm6MgwryGudkBG/edf7WnDiZZ27C6Ptslyov8AX2O3RT6gahrHhfzUlpqVFljbbjluBkk5+/Wm3DRYiQswmZt6USaOvLf9JUTPawddR47a/Puq/v2qCa+WRd9RLUOrO+/JdFHCnjgfYfTr0mGwnYDToBfkT83We+TPbhuVvm1zUVilHpaKnVtscE0iZG9+Cw9uPsOht6PYzUOJ5juHBX+oJ0yj090s1VddW8qJsSrFkrx3H/Trda6OrBSeVuzrXlPXXSKZlp4RGx9exFxn789ELowLcVGRh2JUx/NqrrSxQ3CK4SyU6zMKZWTYx/XGSwALp7+3PVHPDWk1Q+ey4xaaJykvtBp+41pt89Zbaia1zUk84qFkFTC3DRkbdqsRjOPpkdZL+tfVCxYrmPHuTbHNZeXTQ2p82jqt7JQTU+ng1vlp3qIauGtRhMInVHyvBG3d3HOft0szFuhBL37nYjmmTFnADGab770oceyWqggqaqnio0Xy2icjIT+UjjJbrXsNbmYDZ1SpyvcA86DTyQGp1PBoq52640TvU1MFUs6SxjiN42DLw3B7Dj36daXP3CVZGHOpp2XS90FN+HSXOilkp6fUdAtdGyqyqhYdlRs4I9+/p28nrwuLZ1UxY3UA6eHzRfUuj5hiIM/Eij4gb+e6B/DNpSWu8Rqqhq6eaanWGRkljwkbOsZaNioOe4AyO24HkdMTZZwxpO6zwZMI2R7eGlpQ8QKm43rxNea3LRVSLWtPiV/Jgp2ib81DsBOVOCV/Uff3zoN6uKNzJNDtprvtyH6SAL5nNdEb468xvaz0u2iNV36BL2lHJNQb6rc6MQQOQdzgZXGWwT9OOegyNxUTLiunafKR4nYWR3+WrHv/AEugfiLt1JB4V6Fvlqij/CJKeaKogqIz8vKrHeRKigkDH6WwecduSKwQNfhXWDnHI0bvh7eSx8bI4zuuq9qVBeEty0fcqytttBarXDb5aVqupuF4INbO3oKwFpX27VbO3y13MDyTjrC6bZj2wslkcc7TVNuq2ugPudFXBiLMQBpXGr8NfxuiPyGmtB3xponoqOskna40/nSmCOmIwvlLw3mrIMgJ7EKeM56Sb9Z0pBTiSAMrtLJ433EHirBuHwsmY778q7u++SfLBqG7eJN0q7nSUN2u7b0TEEXzRkLRhgT5YJ3Y4wduMY6yn4OaJn07DZO++lGq10TrJGydoaD+u5aLb4a6n8Q5rizaOvVzoaSo2GW6mK3RSy7sNHG8sihlAxkrkZwD1vMweJwzWfTFsZLaOt+Z7+XJKuMUjj1gLgNtKVx+HPw/XfRbUUkT2SwxsweotryPVspY4y020x78YAAJU54PGemsLg5zMZcU8PdVA1qPCxX5Q3ZGsywtoXZ70L+JVtP0lRc79dKV6uko/LiqfMpjIYgXA3kdycsD+w7HqQZZZurhNEnnS9Nheriw4fiACK8VyDfvD6qtV/Nw07R21bVUR7pKZgytUZwWwucYx9go3dbkOMbJH1eJLsw2PJIz4NzZOsw4GUj1/pdJab+Hqn8XPAixPZblBoq6W+qlgrzDTmrDetZImRQ6ckEjGfqM8DqI5o6cX9vWj4LNxkL87WVlsA93f871otvwFIwn/EdfT3KrWLyz8pZ0EpYEnDh6hghwcdj9uqmZpNMbQvYLO+jF252/ctVx+AmWa7tdovEOtoAHiZIZrArjK+5AqFGOPp9+iMnjbF1TmWNeOuvkpdhA51hwvwSJqD4AtSR1rfhmtbHIzs+2WotNXTO7fqKHbvXkH2JH+nTbMdG0U5pI8lzcC7/6BC21nwC61vl0FXU600jRKEXPlirdV2r2UeUM8ck8d+qQ4uKFnVgE+nFDGDkAokIovwRVNMKWoPiVpW3VMMbxytT0VTsmB4IcjjH2PPv0mcTYc12oJsWdq5IrcBKNvt/ag3f4KLzWUFJT2nxTtAtECqPlanz8NKwAYgx5UA44zk4+vRo8VE1zpJIwXHjQuvNEOCkDcgOnfzS/qn4W/Eezimt9UdN3eniiHl1VsvBYohTGTD5ayk5J5APv1DDA15kYSCdToOfO6QThZntDeSp6+NW6UplstzlgiCIit86tVBgZ/UBNAhx9M9ONwzZZDM0G9dq/BS7oXs7Lj9/0hiaLkulwR7deLTWxEqzxQy1k2cHnLRUxA/setBr8rKeCDzofkq7ISQdr+dy8GhNQmpEEYqJ0jY+TFT0NTJtbdkcGMHv79d1kJG2p31H7Vjhzy181b8/w4utPGk+utPGpALKflqhiy+y+kntz2HWSMU1pOVpryTbujXu3cPRRV+Fy4zVMFZ/FthPkSAkCCuG44/SSIiAB0Q41oY5mU6+ChvR8jdA4e6kT/DhqNrYsFBfdKvVEg76Y1yNIe20D5XqseKiDiXgkev5Q3dHSmhp6rOD4W9ZCGF/xSx00yxnBqWrkQnOCcmlxnn36h2KgcTd14f2qN6OnG1eqmUHww3rS4qmnl07PNLH+VIupkjELFvzPS6LuBwOOCegzYpswGvsiNwUzbsWeGuykVPgvdRE0EbWA1CxghzqCj8qQnOMeskYIOcnqI8U9go6ev6V/oTR7JJRJ/h/1PUWmWCGC1VbsqCGE1tK0KAEZBIb1HPOSftnoDp7k6wus+f6RzhHBha1uvfSP6M8H/Eqg0tcaC76dSK3rT+bSrR3SKrAlVm3GNB64wUwAmSOCBjI6jFmGdgLX24bWKNcidinejnyYSQteKaRrrx4ELX4aamqLBcoJEZaOpiYSRlW25AzncBgngYI6xXgtNjdesLGzMMbhoVZepvh4bXusdQ6z0w1LLYtTU1KtdRPKIzbLijYaZfSdyFCWGfZipIHbbkxJxGHjcwatOt8l4xrHYKdzXHf3XP3ih4aSaW1etJcoZKWrpUf8+SNZN8Z5BwQQ6sMENyCDx9B0Ez42lg2PD9FaE0ccxEjTpz/YV7+Bms7F4t6Lm8NdRV4okhhP4fdLYjUklNu2KP1Mcglf0nIIHforC/DEHYG96JB/XNZ2JYJgXt3020Hl3pW1N8Hdtsuqre91mt0NDa7bFRVFFDaJ83BgWAqjM85DStnJYcfYdJYnFYmOJ8TXkPJsO0rwriEOHAxzubICMvEa358iplJ4Yab0vHb4rror+NI6LL01cFqGqYMjODT1EqQSxgnAHmdgOD7BikYC4tcWl1XYFHvsA1z2TTsAS0AtDq79fQ191aFJq60U+nZKaroBarWAcUNRYZLfFCuP0NFDEyOAOchmxj+bqcjnO7Js9xB/SLlbGNqHgsrbd7hVW+d9E6pr5rXRoogjsAhkW3pncIlhEWVU4I2HgZGQBwGM72O/yDXvHzZALInih7FNvhnrrXVRdKun1UkddA8gkt7T0UVJU0jYbh/LjCOpyhV8Kw9ec8dHM7CBl0Pt5XqEu/C5LINj3/tc8X40utNU6is73J55bhSvDVFmaVUZgBvG8kHBwP7DGO3WM1z21JWxtexcyLqzFzFLnC/+Dd60ZJJSW3UtbEsDEGAqWQMMYxhuASOMj6YHXpY+kop+1LECTxXn5cDJBo159/2ulfgg1Fcqam1RYb7ew1DFRLM8iDJRkfAYEZO8bu/JzjPSWKyulHVNyhyAQ7qszzZadPnlqugJrFaZEo2Or5ayKmTanzNUkdRKhGDGZSqnBz/VkZ7jpYscLr8qBNpq0C1NpbIIKaMW+sqrfBHk+VR1nn7e5wCQ3p5JAHv9sDodm0TMDuLQPUlyvlKz0ltuNwWWHJWomaJCD/UdzcjkjlVz/vYHXVXa1hF5Vptes6unZGr7zcRJEjf8NWCLyQOOTKgC474Gd2Tg9SSeCkxsOgbuiX8WXEzUSU1qhqy5GxqeUlsAZJU7xtyO/qIxx9CbC90MsYLt3z0WFy1PcYrcfmlipWTDRIk0sWFHsSrK5/m4HGPfuepA1BVQ1pJr7IHdLzA9ykqEub0FYsS73t7vV7VweN2wuCMgndknPuMDq+U3YGi5pGUB2qXqq5UqU1TLc9Sm7w7QHpbvb53gjxySUWNCO3IPAyTheOrhjr/irF7dku6gWwVCs1DR0attB3tp+vnCrtONq4YYAweFU5xyfczY3jcfZCMrOakWm+3G6UNdT0FXWSVYcRKyadEcMa4C+YH8uNiG4Yl3JwPbBBsWgb/dUzXqFoorQtMF829XGncsoMchljPGOPTEPtnJ/v3ymCTsAnnZRpaP0lpgqPzvxGvrDt2kyNUuhUnsCxUH+30PVXEg6ivRVG3ZP3U6nht9PG80dLVeUp2yZ81VX9vzNpY8Hk9h1QWTpqpJrc1871Am1lpilqFje2NPh9olVRIoP/qUhiBznsf36nI48vVcSauz6I5bL89SsCW0edASSFiY+g444iQkE8HOAcAdCINm/v8A2rUK1v0RWfUNxyI5K+fDkskYoauXaMYyc4XjI446jK47fhDtg33UmlqL5VVkeKaoq6YqSqS21oV3ADsTKzcHP8o642BenqFQZPlrTdtYXCzITWV+mbf5OW8ypqZYAFwThsx7VHbkuD+/bojIi8Wftf2VHFgNAH1/a4z8eZaPTGpq/U1n1Jp2uobg5ertFru0c8tJUnjzYEL72RyMvHghSdwwDxrRYbrmBj204caoEd/I96q7EmJ2aNxIPPge5DfDr4srno9Ujprx8rFyj0s5ZfMGOBgqVYZJ4IPf6dVf0bIwkt18D/f9Iv1bJQBK3b1V82m/2/4l/D4x0dsqv4ks0MjR17QSx084Z12U7bgF7tKRIvCbR/VjpaWHqBmPZN6bbeq6Kan5btp33357eC52tOpqa0a4rKCWCa33K3saCrp5vTKm187MYxjIA+mCMfXpwsljjbI06HXRDD4nyFjh3LqDR/xhLpvRcdPdKGr1NMi7kpYaYsYSODtO8kngn0jJC46z3NkJDI8tHgef48bVjBG63kkHmOIVv6I1PZPHPSlTLY6n8O1FSDmnpKqdMqDlSoLLn64OCDkEDuZZhdKcNefA8/Mcku+V0TtDbTzr5rzQ612eguYMTR1NTBEm6aCGWeaZHO7aSiznIJycYwMnnjHXfTsvMT+lf6iRg7P4/SJ1GhdNy06tPa6qpk2hJGqKWoZto4bCM5PbsSxU7uAeggNY7TTz/Sl0krxrR8gtlJYtP6Sp55bPaxaalI5koVkqp/JLtGQpkSNiccgt6eATxkdWMhvKXXz5+pH5Qg0u1r0ql+ell1xqPSOs5LRd6aWkudsrPl6lWmUhZkbaSOACOXIJ7jnjgdaM2Fi6sPjOh7vunIsY8yZZNSrQ8UKei1GxvNJJHVUNSWMM6ksUYMA0eAB+kgc5OcnIGMdY8IdC7La1psszASEI+FzUdz0L4svVVMsC6cNO9LWSVNaIUEMhwQGGCSADgICxbacjHGtiHxGHP/2Gwo6rDZFK5xjH8fLyXUVY9/r9N3C6aO1TXa1paKRpHoZUzU+SvO5A4YTMmSDjB4XgdUgm6yQx1ld5fKS8sQjAc8aHvKrC1fEdR6yu4pZ77W0twowA9sqKZqQr2GTH5Cf0rwDjkkDjPTzoZWtogHy/tBBiuxp5p8tmuqqWZDV3r8ThYb1X5WlqZI1IYnJOGAbA53enHfkZCY2HR4GiuHOGrL90PHiJT2mM08NNaKRYi3kD5MF4mJABDOCy8DPpA3E4ye/VhEy7IUFz60KwrdX6kuyCOS9u0jOB5a06SJId6jABUgYzyOc8DHHNhDEN1XO8baJcu2sbnQxVVFFUQUDtkN+AUMVNPyf1H5c7kI7gkfb3PRBG0jOBfjqqhxvKUiXddbVF2pbjBfdQyVEZw1JWTLUxyL3HmGNopwnvjcf0jjCgdHDmN7O3h8pULHHUe6s/w71hJp2gqKO/Nf7Yks0aJNVy1F3p1Dn/AMxZJD5kaE8YZCqheWPBCkjM/aYQfQFFacujhXqpOs7hVwyLW0moqWpoZH8z8hjSylcDLLIqIsq42gctnvggE9KN3o6JyrGgQK361vN+kWne8NXyxkTFkeKdlBBILtsIxz2wPv34uQ0cFwBPFRNP3Sku9I6morqiadc+Xb6S5JKhKg5OAD7/AGHJx0s9pbwHnlTTTe9+6k/hMsj+bHRXCvpQm1oLjbauVigAzgvKCpPp/VnPAxkdULztt4UrCMaE6+ZRIXh91OJdIW2SkSMHe8VOPKwcbWiMxYe2GOQM+x4Ixr/3+eikt5NWxrqbXVS1Us01thaIKPLqKSFEHOOAquQOf5x346m8woanwKgx1qRp4qv9b+N9RSVwq7fVU08iKUMlVUuqzlSfTt8xl2kYIyp7fv08yBrx2x7f0kJJMn8T7pbp/iE1rcIxs1jNS+oloLXFTsVQnC5Kx5CKP5lHOCDnuS/SQNNZL8Sf2hid7tc2vktyeKN9uEUSLV6h1NBIxhmEUrZBHG0BAByQxyce/boZhiHIfO9HbI/TKMw+clvteoK6zor1PhJFW7SWD16xVeEYZzl+xPA+2e3VHBrtpq9kUF9dqIpgpfHmktskFDavCO3UlaEOYkoKRUiOSW4jgwTxk4Ofse/VTFIQc0tjzQv8dgNjNqZD8RHiPVVNO1Boq009MkwjYpSjdET337k9OPfC+/6u3Qxh4mHV6v23bM90xxeKfjJqlUeSu0vbkZwN09bUkgYwTtWLjH0znoRZh2aAnyARBFJvk90jeKngfqrxfNFW3PVmh6C50e6NHpKWrimSM4yskzDDLnnBB5ORycdMYfGRYYFoa5wPP9IUmGlk3AHzmkiP4a9YCR4E8QNERPAzCOoatqy29SAQVEOAVLAHPbIz0c4rC7ljvRDbBiNAOHerU8BPBbWHhdqKG7V2orDfaKOjEAFBLUyFsOrRs7yKowrAMCc84OcDBXxHSELzmjJu/nzgrswsjRkkGnv5fNValRpKmp2CY8vy2WMNhfRkeo70bdjjAJzj7dZnXWd06G0NB8+yXdR63tWlaPyLle/+JPpio460zM5C+n9RON2MjcR3OM8dXiuQggGu5c9oZYNearu9+PWp7fRTpYVhtQQrLLUvURzPEpGBwYgMMMHsGHHTjMOzN2j7f2gSE5brbv8AwqA1FbrbrzxAu95vmrI7RPXAVtdc6SnkrDI54JKRsqF+FzwO/ODkdbLJXRRBmTN3aBIuDHuPaDdO8ohX3rTuh9M1lmtWv7vq0xnzaVYrTFDTws3JLebMHUNuYHaCf356DkOJcHviDPP9D8ohl6hpbHJf490hXPVXzSzt8pNJPJH+XG9OzKeR6iccLnLZB+nTEeHykCxXigOmLySQr6+DzW97tfixpWGijukNI9STXyinqFpJqcxuHjOEK5YFdh42sAdwA6Tnj6p/W2NO8X84IzZOtiMTgV0FrPwlu+rLlHWtoWasrEeXyKtr81NPTg4YKrxOxC8DILAZHbkjrPZiXMvqzV91hGLI3AB5270qUvhHrrTxkFMs1tood0i09wuiV0Oc5JXc0cokwe7S7RnjGBlv65h0ePTT9hC+nB1YfysKyr1hTQrXfwz81DEymT8KSNpG9Yw3lTbFydpP6we+Mk9XbiIXg271099VUwSMIAHola3a1t90EUyR1UNRUBmBqUgpKmNuVZGgL4jcEHgnd39u9nnLYHtZHqFZjCav30+6PWbRGpNWTySwXelttryDIt0qY0kUHADKGZeNpBLBTgkAcnPQuvbXNWdEWkc/C07XfSlLYrdUVz6ttNxrQVHkUTTVE0jHIC/rwF+p2jIzj2HQw8EUB9lNOJshJlxr6GntNNVXCCZajJSOOV2p0QHkHaX3AY9+Pb3PVqJNBWuhaDpLZbHbZqma4UtnhaXczAzOZOOCF3cMArnnnnnHbolyE81QhjRySRWeO1s07DJ8vC1xMwcQPtVQ8ZBxIAhIyTjvj/PRxC929JZ07G/xtKNP46rG0gttphpJQmHlTYZH45LZj2sSTwcDA9uo+kOmYrvrxwbSg1vidqq60Dwrca2EeVGo+YqvVGO6kbQcjg8ZHYcdEGGj3QTjJHDQpamrfxCuElxv86LKW2NEjB1kAJyccdhjgfT9+jCNrRoEsZnPPacUWn1UtK+YqqSoqYnjaVZYRuwwUhQxJA425I/x1TqmndE+oI1BU5tVwVFbXyvb6YMsQhK1OZG8z6qcYHftwOffqnVigLRPqLJdSKRa807FWxyO8NNKCHkWjimhzJ/KWEe0N2+vHVDE6q3RRiWXZ08L/CnSeKttutQk1LbKqVCpYyTzsFDHJBKh/UOOMg9+cY6EYMuhKN9a1x0BX02u2ld5IlWlq1hM6RSQq6sSOGDAewGMEA5PuOeq5APBWOKDuNHwU2g1LWVFropHnqqiOpzJiGXCHjBRo8oD+knliP8AYVIFkKwnGUZjv820XprTSVldDUXi6UtPCdsFPRtuduDjZKWUoCc+gjA+vPUZxppqrEiyMxr5xUemrrhcqmkS2QXO8VlURgVdb5ccQ9QyUaVlIPuBntng9c5zGjtUAO7+lVryayEknmVtpr/HcvnYRQ2+3KxShmjpkO4yqT7srKeBt5XHJyCcEQbFVrxRGyMcTZA4fNFFt+lLfWlZkeGR5Sk6sIvIjH6jwkYUbfUQcgsSO4HfnTuG6oyOJ2oPzyW6Gu1JRSFaS8y1tOYSKiOKsmpsjBAA4IxkDIPfBwRhT1QiJwtza8kQySNOj79R6aIxX6m1v8uYKu/VMvnEKlM1SxJ4GQzrtBH6e4PQgyDcN240idZKBRd5a/pLwqBRT1EslDI9Mkkh+aqIIZHiZeDzvLyAZGCx4zwMADpiw6hf3S/XMaTeviPlpcuVr/8AGYFpxG43rHO1TkMAZCVkXZjaCXUEAlv84Ya/skuKVe5mcZD3a+K10+m6+uqqqYt+IxI7JURpIyk5T9ILsDnIByW7jqTM0ADZVa3MSbv1T54f6p0jYqgretKJVyksq1kkjTTRvuALqjsyAjnhcD344ISnZM/Vj/Lb55rQgmw7dHNo89/9eS6N0ZqSwX/TStTw/JwQSqYoqqN2JJ9ODtY98DjOB/tiyBzHUdVph4fTmndOCz3GnqflbFUU9JTINyColnVGY/zBEzg5IGCQPfnt0G9VUvjLbebUuRdTB/Me8U7KgGxBPUEZHcAtuI/uG7d+jZXnn7IIkw+1ey8v1w1NEtNVVFFBJA8gignhq0dgxOFbDRIQxPHfCjOM+9nBwALl0TsOSWtP3Qila73H5Oop4jW3BSwqBDOlGIypZWVW2Nu7Ec4BIzxgZGL4EoznxN0NehKj32WwLbl/iWikFPLk/wDHSJVLJ/MMgQnJyFJJAzuPJPPRGZw7s7oZkYRQII5UVR+o6b4d6GepFXda+01IQ5kszVkMyPtO5kXyfKB5+mD9M89a0b8WQNMw76/2s+QwC6NHutURqLxqXQ1zSk0ZWSX6zEb0rtQUKpVOdxzvCOcqRgqVKcH1JuGTtQ4UTjO/snkNvnP2KU+oIFMN+IU+s8dK+9U1P+HUFJQVtVsy1ND5OCcli20jdj1MDnOSM9uQ/T5Cc5ulR2JN0NCqvrHrbzcGqKyomrY3YbJ3kACHgscd8HjtyMdOhzWNpuhSZdm3Kj3ASyVUsrSyNJksTxuJxgc/T7dSwigFFhf/2Q==
<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="34 107 510 317" width="510pt" height="317pt"><metadata xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:date>2012-05-10 07:32Z</dc:date><!-- Produced by OmniGraffle Professional 5.3.6 --></metadata><defs></defs><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><title>Canvas 1</title><rect fill="white" width="595.28998" height="841.89"/><g><title>Layer 1</title><path d="M 204.10294 372.67294 L 206.91333 373.50204 C 210.44484 371.92197 217.54364 374.36401 221.30923 375.55795 C 214.37523 367.871 203.92865 356.58286 196.40225 349.4665 C 193.93185 340.85104 194.98593 332.1817 195.51744 323.3866 L 195.62405 322.659 C 192.65733 329.6997 188.89246 336.5437 186.86893 343.95477 C 184.50095 353.95294 197.39323 364.74045 202.39233 370.92294 Z M 419.00293 414.95798 C 399.65295 414.411 391.14194 414.45804 381.28735 398.25296 L 373.60684 398.473 C 364.66696 398.076 368.39264 398.25595 362.42844 397.95901 C 352.45654 397.57098 354.05396 388.09604 352.29965 383.09003 C 349.49335 366.09698 356.01324 349.01611 355.80756 332.01971 C 355.73474 325.98639 347.19724 304.63062 344.14716 296.99548 C 334.58554 298.79572 324.97205 299.13895 315.27176 299.62231 C 292.91254 299.56754 270.70496 296.8295 248.65794 293.35248 C 244.36153 311.10052 231.59093 335.94183 242.14684 353.9793 C 254.95975 372.63696 263.95123 377.80597 277.88824 378.93094 C 291.8251 380.055 294.97214 395.78998 291.60031 401.40997 C 288.61584 405.294 283.37045 405.99902 278.91385 406.94 L 269.99945 407.35898 C 262.98456 407.12299 256.71454 405.229 250.46393 402.30798 C 240.02545 396.48102 229.24443 384.36703 221.23434 375.67001 C 223.09915 379.143 224.21146 385.92294 222.52005 389.07803 C 217.78415 395.78699 197.30133 395.746 187.92093 391.577 C 177.26495 386.84198 151.51596 353.59503 147.53493 328.69455 C 158.12593 308.66583 173.55493 291.2196 181.36093 269.41132 C 164.34593 258.55438 155.23293 240.88019 156.41594 220.8598 L 156.84294 218.5423 C 140.10095 221.67648 148.78296 220.51039 130.772964 221.87279 C 73.41696 221.6973 22.976959 182.80795 51.378967 122.367004 C 53.225952 118.787964 54.982956 115.534 58.113968 117.08801 C 60.626953 118.33496 60.265976 123.33699 59.001953 128.88399 C 42.766968 201.10277 122.11395 201.65552 170.88995 188.29181 C 175.73093 186.96521 185.35893 178.03061 192.02843 175.0687 C 202.93033 170.22757 214.76323 168.2634 226.50644 166.84811 C 255.71411 163.51997 290.81815 178.90649 308.65442 179.4089 C 326.4909 179.91129 351.86395 175.13808 367.43942 176.14308 C 378.74075 176.66016 389.83795 178.70007 400.74194 181.6059 C 407.79996 147.215 408.29895 121.867996 425.03094 116 C 434.85095 117.550995 442.4179 130.93298 448.01895 138.08301 L 448.04193 138.07898 C 459.4489 137.62897 470.30396 140.52301 481.09692 143.73497 C 500.63696 140.962006 517.03394 129.989 534.28992 121.45299 C 534.23596 121.721985 533.95398 121.81297 533.78595 121.99397 C 516.80396 135.72798 514.4319 158.952 516.42993 180.42822 C 517.17297 191.57237 514.02393 203.67166 510.13098 215.08179 C 502.84595 233.67169 488.77692 253.26677 472.44794 252.26176 C 466.27496 252.0665 462.68893 248.57117 458.10095 244.83946 C 457.21094 252.39809 453.71295 259.14267 450.34094 265.82758 C 442.55396 280.64941 422.20496 287.18097 403.36292 303.00763 C 384.52216 318.83453 409.39194 375.35904 415.42194 385.65802 C 421.45096 395.95798 438.28192 399.72598 431.75095 409.02194 C 429.75296 412.09198 426.69794 413.19 423.43292 414.38098 Z" fill="black"/></g></g></svg>
<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="216 290 330 333" width="330pt" height="333pt"><metadata xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:date>2011-10-18 15:32Z</dc:date><!-- Produced by OmniGraffle Professional 5.3.6 --></metadata><defs></defs><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><title>Canvas 1</title><g><title>Layer 1</title><path d="M 442.7708 401.63043 L 413.54462 406.727 C 416.80856 405.83435 422.99722 391.7118 411.13663 390.20697 C 413.2671 386.8555 417.85052 387.3249 420.58444 389.66956 C 422.604 384.71863 427.60233 383.09958 430.95114 388.68173 C 432.43198 385.7193 440.88962 387.0678 441.26031 391.8762 C 445.71463 389.20319 453.64325 389.1528 456.18387 393.38382 C 450.81464 394.85754 442.05713 398.04846 442.7708 401.63043 Z" fill="#9c2aad"/><path d="M 442.7708 401.63043 L 413.54462 406.727 C 416.80856 405.83435 422.99722 391.7118 411.13663 390.20697 C 413.2671 386.8555 417.85052 387.3249 420.58444 389.66956 C 422.604 384.71863 427.60233 383.09958 430.95114 388.68173 C 432.43198 385.7193 440.88962 387.0678 441.26031 391.8762 C 445.71463 389.20319 453.64325 389.1528 456.18387 393.38382 C 450.81464 394.85754 442.05713 398.04846 442.7708 401.63043 Z" stroke="black" stroke-linecap="butt" stroke-linejoin="bevel" stroke-width=".5"/><path d="M 518.7041 423.77078 C 498.43768 432.6787 479.68716 431.40332 463.93137 410.0036 C 431.99905 397.3547 406.8626 398.1261 390.50183 421.21622 L 383.61246 433.08511 L 377.323 440.90723 C 382.73856 444.03094 386.49606 445.22226 391.41977 443.53967 C 423.91724 433.9902 468.78778 433.28616 488.58038 444.35022 C 498.06448 456.83328 499.6226 467.8483 494.2746 477.36945 C 503.37277 477.36603 508.15073 471.44598 508.42218 459.3521 C 511.04926 454.77158 507.64413 451.99799 504.38187 449.18118 C 525.81378 439.93906 522.27124 431.85516 518.7041 423.77078 Z" fill="#9c2aad"/><path d="M 515.3888 443.43765 C 518.471 441.0784 520.69507 437.9082 521.4945 433.98132 C 521.8189 432.39774 521.86353 430.78894 521.6565 429.21866 C 521.47424 427.81204 521.1269 426.37628 520.3556 424.99728 C 519.9676 424.2983 519.48785 423.667 518.76715 423.40582 C 517.23035 422.84723 515.48798 423.0885 513.87372 423.29428 C 512.92957 423.41565 511.97925 423.59198 511.03885 423.78204 C 509.69052 424.05847 508.33154 424.3406 506.97083 424.63992 C 501.95206 425.7452 496.81345 426.90594 491.79453 426.75775 C 489.50748 426.69043 486.84143 426.41138 484.73837 425.243 C 483.0166 424.28519 481.77847 422.83649 480.28064 421.51758 C 479.0265 420.41171 477.68494 419.33054 476.3757 418.2948 C 470.253 413.4426 463.67755 409.29327 456.5536 405.84085 C 452.94205 404.09052 448.98795 402.59589 444.95294 401.59827 C 442.72797 401.04944 440.53168 400.70273 438.31406 400.40283 C 438.84006 400.52283 437.87433 400.25607 437.6907 400.21228 C 437.0046 400.04684 436.324 399.92752 435.6323 399.83856 C 433.8083 399.604 431.9927 399.62048 430.16275 399.66626 C 427.07178 399.74374 423.94662 400.258 420.86484 400.83344 C 418.08362 401.35522 415.37164 401.987 412.6056 402.98746 C 409.47873 404.12247 406.22034 406.00198 403.52374 407.88974 C 400.1043 410.2897 397.14514 413.01318 394.44595 415.91388 C 392.05963 418.4824 389.84894 421.16675 387.91028 424.07095 C 386.33606 426.4332 384.94672 428.80597 383.60333 431.29565 L 382.36902 434.195 L 380.1762 436.21744 C 379.40842 436.9466 378.68204 437.70258 378.08286 438.5649 C 377.73996 439.06534 377.31543 439.69885 377.28165 440.32037 C 377.27112 440.54614 377.24213 440.75742 377.2924 440.9646 C 377.59445 442.17694 378.6471 442.7401 379.72815 443.11148 C 380.39005 443.33875 381.09271 443.51974 381.75955 443.64914 C 382.01099 443.6976 382.24841 443.74545 382.4934 443.79187 C 382.91095 443.87158 383.38864 443.6911 383.79892 443.56262 C 384.48843 443.35104 385.2013 443.12683 385.89847 442.83243 C 387.85168 442.01126 389.57306 440.80511 390.46994 439.13742 C 389.34836 441.00623 386.56912 442.12503 384.4688 442.65445 L 382.76828 443.01486 L 382.5994 442.96335 C 382.42746 442.92148 382.18582 442.87595 382.1112 442.85315 C 381.66962 442.7182 381.19077 442.5948 380.7475 442.43622 C 380.14288 442.2194 379.52637 442.00076 379.0413 441.62515 C 378.83868 441.46918 378.53766 441.2458 378.47046 440.96082 C 378.4148 440.713 378.45386 440.5563 378.50443 440.30374 C 378.5401 440.14069 378.65427 439.94131 378.7529 439.80457 C 378.95038 439.54196 379.12921 439.2646 379.34521 439.0111 C 380.17285 438.0572 381.18527 437.18457 382.1972 436.34192 C 382.71277 435.91553 383.5754 435.41068 383.80746 434.77335 C 384.20676 433.6937 384.76538 432.6681 385.3097 431.67719 C 387.2236 428.2099 389.51834 424.98318 392.04352 421.95483 C 395.70743 417.57056 399.7919 413.42477 404.79626 410.03256 C 406.996 408.5448 409.45505 407.0796 411.98254 406.07022 L 416.27902 404.59872 L 416.93347 404.44382 C 417.4599 404.32422 417.97787 404.2092 418.49374 404.0953 C 420.24756 403.7121 421.9883 403.41174 423.74585 403.1325 C 425.6948 402.82495 427.66772 402.61334 429.61868 402.51404 C 431.9859 402.39453 434.38297 402.3978 436.73083 402.9222 C 437.1294 403.01212 437.55258 403.18408 437.96002 403.24472 C 438.9809 403.40063 439.99966 403.51163 441.03732 403.69385 C 442.98865 404.03482 444.93814 404.56696 446.90097 405.1547 C 449.65054 405.97928 452.27057 407.07675 454.80118 408.21075 C 459.75378 410.42792 464.3754 413.22897 468.7734 416.19778 C 471.06628 417.74371 473.26392 419.38657 475.43463 421.07083 C 476.3458 421.7772 477.2645 422.52313 478.13348 423.26279 C 478.51422 423.58502 478.90454 423.90503 479.2866 424.2348 C 479.43698 424.3642 480.07416 424.93887 479.85065 424.71786 C 480.93756 425.92355 482.08554 426.77869 483.47226 427.56122 C 484.7882 428.3025 486.45273 428.72794 487.93158 428.9884 C 490.94772 429.5218 494.0755 429.32962 497.0675 428.9024 C 499.36826 428.5763 501.6564 428.12918 503.95248 427.61517 C 505.93896 427.1734 507.889 426.6939 509.84332 426.21216 C 511.5575 425.79016 513.31824 425.3433 515.0404 425.15628 C 515.78577 425.07538 516.4734 425.00342 517.1902 425.02194 L 518.11017 425.17706 L 518.92975 426.12527 C 519.1574 426.55344 519.33264 427.03125 519.47327 427.41867 C 520.10858 429.1554 520.25812 430.92477 520.14325 432.68228 C 519.83954 437.44958 516.8954 441.41855 513.12177 444.083 C 510.91116 445.64725 508.19293 447.18768 505.6106 448.06317 C 507.07513 447.70865 508.48352 447.17181 509.94543 446.58221 C 511.87827 445.8046 513.80725 444.65112 515.3888 443.43765 Z" fill="black"/><path d="M 506.25293 473.5787 C 508.8535 469.61313 510.30685 464.44116 510.56366 459.72882 C 510.596 459.17596 510.5855 458.62955 510.5608 458.07169 C 510.4873 456.25116 510.11853 453.92136 508.72733 452.35818 C 508.02225 451.564 507.27094 451.2403 506.2353 450.92358 C 506.79074 451.2318 507.3497 451.3832 507.80432 451.82394 C 509.62582 453.58792 509.81293 456.42484 509.6522 458.62836 C 509.58957 459.51257 509.48672 460.4237 509.31723 461.33218 C 509.0737 462.66888 508.7298 464.0318 508.2878 465.38416 C 507.59198 467.52698 506.70285 469.54672 505.5674 471.37933 C 504.67062 472.83228 503.65628 474.22263 502.39746 475.3786 C 502.02905 475.71854 501.5988 476.07523 501.15814 476.36108 C 499.44434 477.48447 497.79596 477.78995 495.9889 477.20374 L 495.7976 477.11505 L 496.89807 472.3837 C 497.53995 469.11148 497.89682 465.73798 497.67563 462.484 C 497.45987 459.27084 496.88168 456.25583 495.5612 453.051 C 494.27228 449.91623 492.14496 447.35236 489.9294 445.29233 C 485.5158 441.1844 479.30838 438.8215 473.134 437.48242 C 464.10144 435.52316 455.09164 435.53955 446.16891 435.30548 C 444.54523 435.26352 442.94772 435.19934 441.34015 435.07529 C 440.62357 435.02124 439.92178 434.91318 439.21246 434.76566 C 438.90372 434.70132 438.5926 434.71454 438.27774 434.7053 C 437.53952 434.68723 436.79572 434.66397 436.0514 434.66006 C 431.8829 434.6388 427.6738 434.75076 423.50912 435.18152 C 421.5639 435.3838 419.58755 435.4559 417.6453 435.90402 C 411.68729 437.28296 405.68307 439.26007 399.69882 441.04993 C 397.65652 441.6628 395.6023 442.22754 393.54587 442.74728 L 387.39691 444.17609 L 383.2949 444.10587 C 384.62155 444.42276 386.14203 444.79712 387.45505 444.65363 C 390.11862 444.3656 392.7835 443.952 395.43896 443.42368 C 399.01031 442.71564 402.52585 441.79523 406.09457 440.89825 C 408.91104 440.19199 411.72403 439.4331 414.5386 438.7848 C 415.4239 438.5833 416.28992 438.38654 417.16599 438.2035 C 417.51431 438.13248 417.8583 438.06375 418.20563 437.9959 C 418.33392 437.97134 419.11847 437.82065 418.83377 437.86316 C 423.5798 437.48758 428.30453 437.21027 433.05765 437.20618 C 434.21005 437.20526 435.34433 437.2165 436.4891 437.2577 C 437.02441 437.2776 437.54593 437.30206 438.07693 437.32416 C 438.15222 437.3277 438.60287 437.35187 438.72525 437.352 L 441.34653 437.77182 C 442.2693 437.87103 443.19757 437.92935 444.13913 437.96167 C 446.635 438.0484 449.1145 438.12488 451.6349 438.20676 C 454.74002 438.30942 457.86343 438.45126 461.00851 438.69037 C 463.8684 438.9098 466.73285 439.2193 469.55716 439.72952 C 477.4651 441.16385 485.82462 443.7799 490.719 450.23404 C 495.4524 456.47205 495.66928 463.79837 494.7607 470.57288 C 494.5611 472.07922 494.2965 473.60657 493.94647 475.1114 C 493.7948 475.78207 493.63583 476.47006 493.45648 477.15546 C 493.44382 477.2085 493.36987 477.38632 493.38507 477.43542 C 493.52347 477.85938 493.75534 478.32605 493.96497 478.72028 C 493.98975 478.76694 494.1584 478.81323 494.20306 478.8357 C 494.51508 478.98798 494.83426 479.12817 495.15173 479.2394 C 496.98486 479.87967 498.9265 479.79352 500.71664 478.9314 C 503.2868 477.6953 504.8504 475.72202 506.25293 473.5787 Z" fill="black"/><path d="M 399.94818 426.6227 C 400.62823 429.20563 399.14575 431.92978 396.63513 432.71 C 394.12769 433.4914 391.54263 432.03006 390.86255 429.44708 C 390.1858 426.86517 391.66837 424.141 394.17566 423.35974 C 396.68634 422.57947 399.27136 424.04083 399.94818 426.6227 Z" fill="#9c2aad"/><path d="M 399.94818 426.6227 C 400.62823 429.20563 399.14575 431.92978 396.63513 432.71 C 394.12769 433.4914 391.54263 432.03006 390.86255 429.44708 C 390.1858 426.86517 391.66837 424.141 394.17566 423.35974 C 396.68634 422.57947 399.27136 424.04083 399.94818 426.6227 Z" stroke="black" stroke-linecap="butt" stroke-linejoin="bevel" stroke-width=".5"/><path d="M 397.46832 427.46823 C 397.72217 428.42627 397.16968 429.43768 396.23828 429.7264 C 395.31018 430.01593 394.35257 429.47287 394.09875 428.51492 C 393.8482 427.55786 394.40063 426.54633 395.32877 426.25665 C 396.26013 425.96808 397.21774 426.51117 397.46832 427.46823 Z" fill="#9c2aad"/><path d="M 397.46832 427.46823 C 397.72217 428.42627 397.16968 429.43768 396.23828 429.7264 C 395.31018 430.01593 394.35257 429.47287 394.09875 428.51492 C 393.8482 427.55786 394.40063 426.54633 395.32877 426.25665 C 396.26013 425.96808 397.21774 426.51117 397.46832 427.46823 Z" stroke="black" stroke-linecap="butt" stroke-linejoin="bevel" stroke-width=".5"/><path d="M 407.91653 422.46954 C 407.6739 422.04391 407.41565 421.6348 407.13733 421.24442 C 406.39813 420.202 405.5715 419.27103 404.67755 418.4387 C 403.31064 417.16165 401.80392 416.13297 400.23566 415.13693 C 401.7886 416.63596 403.23334 418.19241 404.55823 420.01926 C 405.25668 420.9801 405.8856 421.9943 406.47278 423.09863 C 408.72794 427.33997 409.38931 431.70285 409.33594 436.00528 C 410.3346 431.45578 410.47205 426.91284 407.91653 422.46954 Z" fill="black"/><path d="M 429.245 431.7911 C 434.51141 436.45966 436.38766 440.96506 445.60196 444.56488 C 442.3126 447.7821 439.15152 451.66516 434.06223 445.58105 C 433.6495 451.0534 429.1236 451.0809 425.35397 445.63272 C 424.17923 452.2389 420.70947 450.8728 417.9744 445.86697 C 415.5275 451.84998 411.04724 450.3985 407.56708 446.68616 C 410.60016 444.04022 422.76404 440.6748 422.24445 432.0223 L 429.245 431.7911 Z" fill="#9c2aad"/><path d="M 429.245 431.7911 C 434.51141 436.45966 436.38766 440.96506 445.60196 444.56488 C 442.3126 447.7821 439.15152 451.66516 434.06223 445.58105 C 433.6495 451.0534 429.1236 451.0809 425.35397 445.63272 C 424.17923 452.2389 420.70947 450.8728 417.9744 445.86697 C 415.5275 451.84998 411.04724 450.3985 407.56708 446.68616 C 410.60016 444.04022 422.76404 440.6748 422.24445 432.0223 L 429.245 431.7911 Z" stroke="black" stroke-linecap="butt" stroke-linejoin="bevel" stroke-width=".5"/><path d="M 399.72672 426.68732 C 400.40674 429.27036 398.92422 431.99442 396.41364 432.77472 C 393.90622 433.55594 391.32117 432.09467 390.64108 429.51166 C 389.9643 426.92975 391.4468 424.2056 393.95413 423.42438 C 396.4649 422.6441 399.04987 424.10544 399.72672 426.68732 Z" fill="black"/><path d="M 399.72672 426.68732 C 400.40674 429.27036 398.92422 431.99442 396.41364 432.77472 C 393.90622 433.55594 391.32117 432.09467 390.64108 429.51166 C 389.9643 426.92975 391.4468 424.2056 393.95413 423.42438 C 396.4649 422.6441 399.04987 424.10544 399.72672 426.68732 Z" stroke="black" stroke-linecap="butt" stroke-linejoin="bevel" stroke-width=".5"/><path d="M 397.25024 427.5312 C 397.5041 428.48923 396.9517 429.50082 396.02017 429.78937 C 395.09204 430.07904 394.13455 429.53592 393.88074 428.5779 C 393.63013 427.62085 394.18253 426.60925 395.11066 426.3197 C 396.04205 426.0311 396.99966 426.57416 397.25024 427.5312 Z" fill="white"/><path d="M 251.8898 438.27612 L 282.95639 426.48663 C 279.3002 427.49243 265.26852 417.42426 275.83609 409.19485 C 271.87027 407.18549 267.71954 410.2559 266.42801 414.08014 C 261.65314 410.45996 255.91321 411.75629 255.87485 419.04947 C 252.75641 417.04248 245.38171 423.17139 247.77272 428.01343 C 241.95113 427.987 234.28354 432.46906 234.25476 437.9977 C 240.26834 436.34848 250.5286 434.41833 251.8898 438.27612 Z" fill="#48adb1"/><path d="M 251.8898 438.27612 L 282.95639 426.48663 C 279.3002 427.49243 265.26852 417.42426 275.83609 409.19485 C 271.87027 407.18549 267.71954 410.2559 266.42801 414.08014 C 261.65314 410.45996 255.91321 411.75629 255.87485 419.04947 C 252.75641 417.04248 245.38171 423.17139 247.77272 428.01343 C 241.95113 427.987 234.28354 432.46906 234.25476 437.9977 C 240.26834 436.34848 250.5286 434.41833 251.8898 438.27612 Z" stroke="black" stroke-linecap="butt" stroke-linejoin="bevel" stroke-width=".5"/><path d="M 270.55344 522.20868 C 272.5795 533.8709 274.71136 544.597 274.11359 545.96283 C 260.84763 528.81763 252.09015 516.536 242.58121 513.91443 C 226.57626 500.25726 223.72905 482.91275 231.30061 462.6899 C 236.59644 451.19806 245.95657 443.02869 258.61746 433.81989 C 264.33817 429.93335 274.21683 426.0442 280.9577 425.7634 C 301.5384 425.25201 322.14069 443.29749 326.18811 449.07104 C 334.11728 452.648 336.82773 454.40765 329.2634 458.4359 C 328.81677 459.92676 322.44073 462.19534 321.67493 461.7008 C 308.66354 462.86984 300.02835 461.66235 288.49582 462.625 C 280.8977 464.01498 273.5686 465.80347 266.63562 468.1752 C 255.25656 474.78903 242.97258 483.12402 242.43475 494.39017 C 245.35158 511.8668 257.78445 517.0666 284.64758 499.57794 C 282.12442 506.53497 265.10397 515.9646 270.55344 522.20868 Z" fill="#48adb1"/><path d="M 272.18036 546.97192 C 271.37378 545.98297 270.57672 544.9748 269.77014 544.00244 C 264.85846 538.11133 260.02121 532.0666 254.45407 526.57153 C 251.74619 523.90198 248.9903 521.3166 246.13115 518.96387 C 245.12761 518.14044 244.13623 517.33636 243.11826 516.5705 C 242.34773 515.9944 241.5795 515.44934 240.8497 514.81097 C 239.53658 513.67053 238.1898 512.44617 236.95107 511.13773 C 229.99643 503.80392 225.66574 494.97446 225.37277 484.3157 C 225.32239 482.52957 225.3656 480.73627 225.5072 479.0006 C 225.6969 476.63846 226.07619 474.38419 226.52757 472.14438 C 226.99808 469.799 227.67737 467.49207 228.40479 465.25946 C 228.93295 463.62933 229.51865 462.05698 230.2821 460.5638 C 233.26602 454.72537 237.436 449.4465 242.56848 444.67642 C 244.81314 442.59277 247.08887 440.63144 249.42714 438.7685 C 250.91312 437.58505 252.4256 436.43259 253.94035 435.2947 C 255.856 433.8568 257.75732 432.44275 259.79309 431.2738 C 262.42899 429.76135 265.2497 428.5202 268.11838 427.42078 C 270.71124 426.42932 273.46951 425.58902 276.29749 425.08252 C 277.15689 424.92877 278.02353 424.80399 278.92136 424.69836 C 280.25607 424.54474 281.72519 424.55197 283.09366 424.6312 C 286.48093 424.8352 289.69775 425.38968 292.77301 426.29715 C 299.10815 428.17215 304.91528 431.00485 310.38644 434.5938 C 314.7435 437.45538 319.0263 440.73462 322.82645 444.63797 C 324.09637 445.94397 325.17667 447.21866 326.23297 448.53424 L 326.35785 448.70715 L 331.18304 451.23502 C 332.10254 451.84222 333.29807 452.59125 333.73727 453.64746 C 333.82373 453.85883 333.90048 454.07974 333.9271 454.32944 C 334.05423 455.6665 332.986 456.66043 332.00894 457.35406 C 331.36319 457.81265 330.69092 458.19916 329.99957 458.57608 C 329.75711 458.7081 329.50497 458.83777 329.25772 458.95776 C 328.85693 459.15463 328.30716 459.121 327.8053 459.121 C 326.94116 459.121 326.12732 459.09705 325.32303 459.00333 C 323.03049 458.74173 320.83871 458.11035 319.23752 456.50677 C 321.61182 458.5665 325.50555 458.64325 328.8641 458.27838 C 328.62878 458.34555 329.565 457.80786 329.83398 457.64453 C 330.14343 457.45737 330.44357 457.25803 330.73413 457.042 C 331.46396 456.49954 332.4914 455.79865 332.73624 454.88626 C 332.96188 454.03653 331.9465 453.33072 331.34634 452.9274 C 331.13028 452.7858 330.9094 452.64172 330.68378 452.5145 C 329.66101 451.94794 328.58548 451.4029 327.4765 450.9253 C 326.99872 450.72116 326.5306 450.50516 326.06262 450.3083 C 325.84653 450.21948 325.60645 450.14273 325.41925 450.00113 C 325.10455 449.7658 324.89587 449.4417 324.6558 449.1536 C 323.29944 447.54276 321.71008 445.99188 320.06342 444.5563 C 316.59924 441.54358 312.9143 438.83813 309.09015 436.4687 C 303.87592 433.24213 298.33276 430.6616 292.33606 428.9643 C 289.71939 428.22498 286.89856 427.668 283.98901 427.51682 L 280.6593 427.45197 L 276.5423 428.05203 C 272.5021 428.85388 268.7547 430.23184 265.1753 431.95789 C 263.95578 432.54614 262.76266 433.1726 261.58875 433.82806 C 261.0343 434.1377 260.4916 434.4641 259.96118 434.80984 L 259.12811 435.35477 L 252.99208 440.01688 C 250.9635 441.62045 248.96141 443.27206 246.97855 445.003 C 244.07619 447.53796 241.19781 450.43317 238.83078 453.3931 C 237.04956 455.61847 235.44348 457.89435 234.07509 460.33575 C 233.72946 460.9503 233.41739 461.56253 233.09326 462.18185 C 232.92517 462.5012 232.77164 462.8324 232.6131 463.16132 C 232.59877 463.1876 232.52678 463.3437 232.47151 463.46133 L 232.43784 463.5214 L 230.77911 468.61545 C 229.26424 473.81284 228.28958 479.25266 228.55844 485.26862 C 228.60883 486.4162 228.73131 487.50848 228.88257 488.6056 C 229.40105 492.38412 230.51253 495.86273 232.06572 499.12756 C 233.78702 502.75473 236.15894 506.03888 238.96042 509.11893 C 239.719 509.95676 240.54001 510.74655 241.34897 511.52435 C 241.78592 511.9468 242.2373 512.34534 242.68619 512.74622 C 242.77979 512.83264 242.87589 512.91913 242.97427 513.0031 L 243.04626 513.068 C 243.18307 513.19043 243.0846 513.10406 243.04626 513.0703 C 246.70251 515.96075 250.32503 518.9568 253.73155 522.36078 C 257.60367 526.2354 261.0343 530.23248 264.42868 534.35205 C 266.57245 536.95654 268.64905 539.65735 270.67996 542.32678 C 271.40256 543.2823 272.12756 544.2473 272.84052 545.19324 L 273.13098 545.58698 L 273.39505 545.3684 C 274.5617 543.9881 274.0552 541.35693 273.67114 539.70764 C 273.5679 539.27325 273.4719 538.82672 273.35178 538.39465 C 271.92831 533.30774 269.8422 528.2951 270.16861 522.4593 C 270.28625 523.89966 270.37262 525.19824 270.66309 526.51874 C 271.53699 530.5157 273.22461 534.22943 274.47046 538.073 C 274.66495 538.68036 274.8594 539.302 275.00595 539.9311 C 275.55325 542.30762 276.03818 545.4524 273.82718 547.09686 C 273.33023 547.46655 272.64606 547.5481 272.18036 546.97192 Z" fill="black"/><path d="M 271.09467 519.16718 C 270.49698 518.14697 270.3938 516.81476 270.77063 515.59747 C 271.30359 513.87146 272.44147 512.3111 273.69467 510.93552 C 275.27179 509.20227 277.00027 507.48343 278.69513 505.7405 L 281.0621 503.07828 L 277.98694 505.0323 C 275.65112 506.38153 273.26004 507.61542 270.80664 508.69818 C 267.34973 510.2249 263.72485 511.4877 259.7518 511.94608 C 256.26117 512.35193 252.78033 511.93176 249.9667 510.52258 C 249.31621 510.19858 248.70163 509.84558 248.10147 509.40393 C 244.76459 506.96014 242.76727 503.43588 241.59094 499.6334 C 241.2044 498.38742 240.88513 497.08386 240.63306 495.75867 C 240.5347 495.24976 240.43152 494.7433 240.48187 494.18872 C 240.63077 492.4554 240.94272 490.90936 241.47568 489.3826 C 242.44801 486.5907 244.05641 484.0772 246.00565 481.76068 C 248.51672 478.77905 251.54404 476.21274 254.624 473.99216 C 257.61273 471.8364 260.7095 469.87262 263.86642 468.04816 C 264.33212 467.77927 264.8003 467.50803 265.27081 467.23444 C 265.97662 466.82385 266.84082 466.63419 267.63062 466.3821 C 269.23419 465.87317 270.84021 465.40262 272.475 464.95615 C 275.38943 464.1615 278.33743 463.46777 281.34305 462.8388 C 284.3534 462.20978 287.27261 461.59518 290.53738 461.4512 C 297.12958 461.1656 303.92575 461.41998 310.60428 461.41998 C 312.90887 461.41998 315.18707 461.38647 317.44131 461.30716 L 324.14627 460.93024 L 326.3645 460.36133 C 327.09662 460.13327 327.81448 459.87405 328.51791 459.58832 C 327.4711 460.18372 326.42691 460.77667 325.29608 461.17273 C 324.9505 461.29517 324.5711 461.45847 324.22311 461.5232 C 321.3064 462.07538 318.3079 462.45465 315.25433 462.73798 C 311.24283 463.11005 307.1282 463.24203 303.00397 463.39563 C 299.75345 463.52048 296.479 463.61182 293.267 463.78943 C 292.24911 463.8471 291.2576 463.9071 290.25894 463.98874 C 289.7909 464.0295 289.32275 464.07272 288.85696 464.11356 C 288.80179 464.1184 288.6289 464.13513 288.4849 464.1472 L 288.30966 464.1592 L 282.62494 465.37384 C 279.3313 466.13486 276.08087 466.97992 272.87836 467.91125 C 271.63239 468.2739 270.41534 468.65082 269.203 469.0516 C 268.63889 469.23886 268.07712 469.42853 267.51773 469.61823 C 267.46985 469.635 267.22726 469.72385 267.03525 469.78864 L 266.88644 469.83667 L 262.28683 472.66223 C 257.55753 475.64142 252.9603 478.89185 249.00653 483.23456 C 246.93 485.51517 245.27835 488.09583 244.35638 490.94312 C 243.99635 492.05457 243.77316 493.22842 243.68193 494.4743 L 243.6771 494.52713 L 244.42613 498.0129 C 245.41756 501.62827 247.10283 504.9868 250.23325 507.15686 C 250.74939 507.51706 251.28947 507.81467 251.83926 508.05475 C 253.83656 508.93326 256.02353 509.2359 258.48416 509.15182 C 260.25104 509.09415 261.90988 508.74612 263.55191 508.36926 C 266.41104 507.7163 269.13098 506.59515 271.7597 505.45007 C 274.98608 504.04568 278.06854 502.34363 281.10535 500.5576 C 281.78708 500.15668 282.46893 499.75095 283.15549 499.32608 C 283.22995 499.2804 283.58044 498.99237 283.66208 499.014 L 283.7269 498.9731 C 284.03891 499.15558 284.33902 499.4894 284.6175 499.72217 C 284.71347 499.8062 284.8191 499.8878 284.91516 499.97183 C 285.00879 500.05832 285.12164 500.1326 285.21283 500.2215 L 285.15286 500.36307 C 285.09283 500.50238 285.02802 500.63678 284.96555 500.77362 C 284.00534 502.87653 282.1857 504.67944 280.43314 506.30954 C 278.01096 508.56137 275.28616 510.6258 273.13052 513.1344 C 272.35025 514.04193 271.56042 515.04053 271.21475 516.1521 C 270.76825 517.57806 270.98187 519.16003 271.9277 520.18756 C 271.59161 520.0099 271.2843 519.49854 271.09467 519.16718 Z" fill="black"/><path d="M 305.11136 446.0443 C 305.19293 449.03317 307.64642 451.49377 310.5896 451.53934 C 313.5304 451.5874 315.84698 449.2011 315.76541 446.21237 C 315.6813 443.226 313.2279 440.76538 310.28711 440.71735 C 307.34393 440.67175 305.02728 443.05795 305.11136 446.0443 Z" fill="#48adb1"/><path d="M 305.11136 446.0443 C 305.19293 449.03317 307.64642 451.49377 310.5896 451.53934 C 313.5304 451.5874 315.84698 449.2011 315.76541 446.21237 C 315.6813 443.226 313.2279 440.76538 310.28711 440.71735 C 307.34393 440.67175 305.02728 443.05795 305.11136 446.0443 Z" stroke="black" stroke-linecap="butt" stroke-linejoin="bevel" stroke-width=".5"/><path d="M 308.04364 446.1677 C 308.0748 447.27676 308.98462 448.1891 310.07693 448.20587 C 311.1668 448.2251 312.02625 447.33926 311.99506 446.23007 C 311.9614 445.12344 311.05157 444.21124 309.96164 444.19202 C 308.86942 444.17523 308.00998 445.06097 308.04364 446.1677 Z" fill="#48adb1"/><path d="M 308.04364 446.1677 C 308.0748 447.27676 308.98462 448.1891 310.07693 448.20587 C 311.1668 448.2251 312.02625 447.33926 311.99506 446.23007 C 311.9614 445.12344 311.05157 444.21124 309.96164 444.19202 C 308.86942 444.17523 308.00998 445.06097 308.04364 446.1677 Z" stroke="black" stroke-linecap="butt" stroke-linejoin="bevel" stroke-width=".5"/><path d="M 270.20065 460.71268 C 266.0115 467.39117 265.41376 472.82623 256.64435 479.596 C 261.19107 482.01584 265.81238 485.19434 269.36765 477.05383 C 271.53543 482.80566 276.4111 481.40613 278.74213 474.365 C 282.09097 481.09402 285.38702 478.53253 286.75061 472.2909 C 291.26617 477.9516 295.62091 474.982 298.19196 469.8927 C 294.10138 468.00336 279.96884 468.2194 277.79861 458.7586 L 270.20065 460.71268 Z" fill="#48adb1"/><path d="M 270.20065 460.71268 C 266.0115 467.39117 265.41376 472.82623 256.64435 479.596 C 261.19107 482.01584 265.81238 485.19434 269.36765 477.05383 C 271.53543 482.80566 276.4111 481.40613 278.74213 474.365 C 282.09097 481.09402 285.38702 478.53253 286.75061 472.2909 C 291.26617 477.9516 295.62091 474.982 298.19196 469.8927 C 294.10138 468.00336 279.96884 468.2194 277.79861 458.7586 L 270.20065 460.71268 Z" stroke="black" stroke-linecap="butt" stroke-linejoin="bevel" stroke-width=".5"/><path d="M 295.8769 454.5162 C 295.4591 453.3303 295.13983 452.08435 294.95502 450.78806 C 294.8182 449.85178 294.75092 448.87949 294.76297 447.8664 C 294.8229 442.12411 297.65088 437.82712 301.17978 433.79395 C 298.4047 438.69122 296.34256 443.83823 296.46017 450.15912 C 296.47458 451.0185 296.52982 451.8539 296.61865 452.67975 C 296.71707 453.60397 296.85144 454.50174 297.02673 455.38525 C 297.27637 456.65994 297.59808 457.87952 297.97495 459.08939 C 297.16354 457.60577 296.43854 456.12216 295.8769 454.5162 Z" fill="black"/><path d="M 305.51346 446.6091 C 306.12561 449.20892 308.7135 450.9182 311.29654 450.4285 C 313.8772 449.94122 315.4737 447.43732 314.86148 444.8374 C 314.24689 442.24 311.65903 440.5307 309.0784 441.018 C 306.4953 441.50778 304.89886 444.0117 305.51346 446.6091 Z" fill="black"/><path d="M 305.51346 446.6091 C 306.12561 449.20892 308.7135 450.9182 311.29654 450.4285 C 313.8772 449.94122 315.4737 447.43732 314.86148 444.8374 C 314.24689 442.24 311.65903 440.5307 309.0784 441.018 C 306.4953 441.50778 304.89886 444.0117 305.51346 446.6091 Z" stroke="black" stroke-linecap="butt" stroke-linejoin="bevel" stroke-width=".5"/><path d="M 308.09927 446.19534 C 308.32495 447.1604 309.2876 447.79407 310.24557 447.61172 C 311.20093 447.43167 311.79144 446.5026 311.56592 445.53763 C 311.33774 444.57495 310.3751 443.9412 309.41974 444.12115 C 308.46185 444.3036 307.87125 445.23267 308.09927 446.19534 Z" fill="white"/><path d="M 355.5029 321.3985 L 330.32993 349.86526 C 332.88419 346.36276 327.78528 327.2825 314.7091 335.2598 C 314.15936 330.20407 319.12628 327.00885 323.74023 327.16959 C 321.79816 320.59912 325.50473 314.98163 333.3211 317.89114 C 332.4353 313.74286 341.97537 308.32944 346.19086 312.84262 C 348.50748 306.60815 356.4079 300.21768 362.33261 302.42145 C 358.1388 308.19028 351.92352 318.38812 355.5029 321.3985 Z" fill="#ea761a"/><path d="M 355.5029 321.3985 L 330.32993 349.86526 C 332.88419 346.36276 327.78528 327.2825 314.7091 335.2598 C 314.15936 330.20407 319.12628 327.00885 323.74023 327.16959 C 321.79816 320.59912 325.50473 314.98163 333.3211 317.89114 C 332.4353 313.74286 341.97537 308.32944 346.19086 312.84262 C 348.50748 306.60815 356.4079 300.21768 362.33261 302.42145 C 358.1388 308.19028 351.92352 318.38812 355.5029 321.3985 Z" stroke="black" stroke-linecap="butt" stroke-linejoin="bevel" stroke-width=".5"/><path d="M 276.05157 355.58249 C 284.67935 370.4688 303.28906 367.37674 332.82648 341.54602 C 346.51248 320.00754 362.45505 311.3797 380.3614 313.93152 C 393.45197 315.7969 404.05078 320.41089 401.1245 339.90872 C 395.35818 339.98798 390.87848 341.72845 385.34027 340.40326 C 370.8381 339.35419 360.75537 345.13007 353.4263 359.12823 C 339.53867 366.64215 322.6958 370.0943 308.36407 371.9859 C 301.10214 380.85867 296.3729 394.40305 309.35309 403.54697 C 288.87808 403.38382 278.97552 396.96695 287.74268 379.51675 C 270.77014 376.54718 267.99988 368.13535 276.05157 355.58249 Z" fill="#ea761a"/><path d="M 281.59845 363.09628 C 279.56516 361.93195 277.99994 360.07388 277.30371 357.87726 C 276.93402 356.71777 276.83322 355.48865 276.81876 354.14188 C 276.9028 355.6639 277.12604 356.99146 277.67578 358.26135 C 278.46564 360.10028 279.96844 361.57904 281.72806 362.51764 C 285.43457 364.50064 290.70401 364.30377 295.0155 363.50916 C 301.18515 362.37363 306.82178 359.96103 312.08405 356.9722 C 317.31976 353.99783 322.26746 350.28406 326.68704 345.69885 C 329.28934 342.99817 331.55551 340.13425 333.47842 337.09262 C 334.165 336.00513 334.80353 334.9032 335.39655 333.76532 C 335.5958 333.38123 335.76862 332.96832 336.00153 332.5986 C 336.5296 331.75836 337.22104 330.97339 337.85959 330.19318 C 342.33673 324.72455 347.91583 320.32175 353.87659 317.27298 C 359.74133 314.27466 366.25186 312.3301 373.47055 312.04205 C 375.63345 311.958 377.83728 312.03479 379.89941 312.27487 C 381.4285 312.45496 382.92892 312.73099 384.37183 313.09103 C 390.11163 314.52661 395.72195 317.5274 399.22925 322.66483 C 399.88712 323.63223 400.47046 324.66931 400.9432 325.73044 C 402.53497 329.31693 403.00546 333.73169 402.38852 337.9952 C 402.33087 338.38171 402.26367 338.75143 402.1941 339.12833 C 402.10513 339.61087 402.0548 339.95898 401.64435 340.19424 C 400.53036 340.83276 398.84747 340.77753 397.45755 340.67917 C 395.2034 340.52307 393.06201 340.0694 391.0263 339.4692 C 388.43369 338.7106 385.86255 337.71915 383.79327 335.9163 C 385.76654 337.47433 388.1455 338.28815 390.58463 338.9147 C 392.16418 339.32281 393.8014 339.6181 395.501 339.7741 C 396.82864 339.8989 398.31232 339.97821 399.6397 339.79092 C 399.94223 339.7501 400.23993 339.6997 400.52078 339.61087 L 401.13058 339.26755 C 401.2627 337.7864 401.43787 336.28119 401.40665 334.70636 C 401.34186 331.75598 400.67206 329.0505 399.50293 326.64746 C 398.88123 325.37512 398.12256 324.19641 397.20074 323.0777 C 395.67163 321.22925 393.7654 319.69519 391.78973 318.55734 C 387.97516 316.3656 383.6132 315.18445 378.8623 314.86993 C 375.10773 314.6251 371.3363 314.94922 367.92026 315.63577 C 360.76636 317.07614 354.25116 320.06491 348.54718 324.36923 C 346.18979 326.14813 343.89954 328.19351 341.83261 330.43808 C 341.14368 331.1847 340.48343 331.95044 339.84976 332.72821 C 339.55444 333.09073 339.27597 333.44849 338.99265 333.81094 C 338.92065 333.90216 338.84863 333.99579 338.77905 334.08456 L 338.62537 334.27667 L 336.45526 338.05289 C 335.651 339.3348 334.78922 340.58795 333.85294 341.80984 C 330.94098 345.6124 327.292 349.21338 323.52777 352.159 C 316.82285 357.40674 309.33536 361.31976 301.1323 363.56201 C 295.2532 365.17038 287.05023 366.2291 281.59845 363.09628 Z" fill="black"/><path d="M 308.19708 404.67249 C 306.3366 404.06992 304.85056 402.43265 303.69598 400.81458 C 302.67322 399.38617 301.90024 397.737 301.28088 396.06616 C 300.4838 393.9248 299.9509 391.66098 299.63406 389.27237 C 299.37955 387.36627 299.35797 385.2537 299.53076 383.28043 C 299.95575 378.4143 301.8955 373.81946 306.02936 371.14032 C 306.69672 370.70825 307.3905 370.37451 308.12741 370.06967 C 308.61957 369.86801 309.19098 369.84637 309.76709 369.8056 C 310.80414 369.736 311.8172 369.66156 312.83752 369.5535 C 314.29462 369.40231 315.7615 369.21988 317.19461 369.0494 C 321.33328 368.56451 325.44565 367.67139 329.32501 366.62482 C 339.01392 364.01285 348.09549 359.88864 355.95758 353.63007 C 357.51324 352.39142 358.9751 351.12625 360.44913 349.70032 C 361.49579 348.68723 362.51126 347.55649 363.44748 346.53629 C 364.43176 345.4632 365.68732 344.56296 366.88034 343.76828 C 369.29059 342.1623 372.16425 341.01953 375.0857 340.4555 C 376.39886 340.20337 377.71445 339.9441 379.10687 339.85764 C 381.27454 339.72562 383.62231 339.67285 385.77576 339.96576 C 387.46817 340.19855 389.10303 340.4458 390.66583 340.95715 C 391.28278 341.16116 391.86853 341.39886 392.47104 341.59811 C 385.8382 340.65231 378.33621 341.17084 372.72116 343.66507 C 371.55203 344.18607 370.44296 344.73099 369.37228 345.42953 C 368.72894 345.84967 368.10474 346.30579 367.50214 346.80511 L 365.80243 348.37756 L 364.89026 349.4794 C 364.2373 350.20435 363.61069 350.98703 362.90973 351.70963 C 360.64603 354.04544 358.24054 356.25885 355.7391 358.1337 C 347.044 364.65622 337.12704 368.87897 326.2378 371.21234 C 322.39679 372.0358 318.44531 372.62158 314.36908 372.95285 L 309.3422 373.24808 L 308.00745 373.84589 C 307.50089 374.11713 307.016 374.4316 306.56943 374.8157 C 303.75589 377.22836 302.72366 380.59409 302.2171 384.21423 C 301.67935 388.0312 302.19067 392.1316 303.1077 395.54523 C 303.49182 396.98322 303.99838 398.3588 304.62018 399.62875 C 305.45319 401.33792 306.66312 403.24167 308.38666 404.18512 C 309.04211 404.5452 309.8631 404.89325 310.71054 404.8021 C 309.97357 405.1141 308.88123 404.89566 308.19708 404.67249 Z" fill="black"/><path d="M 376.59866 333.49438 C 376.04178 332.6518 375.59525 331.72034 375.30475 330.73608 C 375.0863 330.00623 374.95905 329.23563 374.92062 328.41461 C 374.68057 323.45728 378.2623 320.03406 381.85364 317.33093 C 380.96783 318.78815 380.13724 320.26453 379.42426 321.8081 C 378.20947 324.43445 377.21088 327.3872 377.53015 330.66406 C 377.73657 332.8006 378.40637 334.6995 379.28741 336.50003 C 378.2695 335.58057 377.31885 334.5915 376.59866 333.49438 Z" fill="black"/><path d="M 296.16653 403.1927 C 294.33487 402.90704 292.67358 402.42926 291.06763 401.73785 C 289.84567 401.2146 288.70538 400.4704 287.6803 399.56775 C 284.14423 396.46371 282.9559 391.78491 283.51044 386.75803 C 283.67365 385.26248 283.94977 383.8244 284.30026 382.42493 L 284.83557 380.50201 L 282.81421 380.19714 C 281.80118 380.01944 280.80011 379.8106 279.80865 379.5657 C 276.50299 378.75192 273.06528 377.5156 270.67426 374.8917 C 268.88574 372.93277 268.09363 370.35938 268.5281 367.46658 C 268.83298 365.4212 269.642 363.60635 270.58548 361.8756 C 271.74738 359.73895 273.21655 357.80167 274.94745 355.91956 C 273.99435 358.57706 272.79636 361.06897 271.9418 363.77444 C 271.49527 365.18835 271.09436 366.72476 271.15198 368.36197 C 271.18082 369.2743 271.37527 370.09769 271.68497 370.8515 C 272.09543 371.85974 272.98605 372.70001 273.8407 373.33856 C 275.12744 374.30594 276.69507 374.87256 278.29144 375.3934 C 279.29251 375.72232 280.34882 375.9696 281.3931 376.17126 C 282.73505 376.43295 284.07938 376.64178 285.47894 376.83136 C 285.95428 376.89868 286.44394 376.94904 286.93613 376.99945 C 287.01532 377.00906 287.46667 376.99945 287.51224 377.05942 C 287.85553 377.52524 288.14362 378.0557 288.4581 378.5431 C 288.69095 378.9103 288.89264 379.14325 289.09192 379.52975 L 288.98868 379.82257 C 288.92142 380.0147 288.8566 380.21393 288.79184 380.4035 C 288.26126 381.94232 287.79071 383.52435 287.46667 385.16885 C 286.93613 387.84067 286.71521 390.94705 287.47147 393.57098 C 287.67548 394.28638 287.97797 394.97778 288.35248 395.60184 C 288.66934 396.13733 289.00546 396.61737 289.41837 397.10468 C 290.14575 397.9737 291.02197 398.63153 291.91019 399.21243 C 294.15244 400.68643 296.7883 401.44504 299.4194 402.13165 C 300.8189 402.49893 302.24011 402.82538 303.66846 403.1015 C 301.36145 403.6152 298.51434 403.5624 296.16653 403.1927 Z" fill="black"/><path d="M 364.04654 347.15765 C 361.01459 355.64142 361.67963 361.86145 353.55582 371.58398 C 359.2309 373.16605 365.1749 375.57861 367.1386 365.60889 C 370.97964 371.50235 376.07858 368.74405 376.95001 360.30106 C 382.34427 366.9916 385.39789 363.31863 385.38104 356.01114 C 391.82196 361.2205 395.95584 356.82974 397.57147 350.52094 C 392.53741 349.41669 376.80356 353.1376 372.05267 343.0982 L 364.04654 347.15765 Z" fill="#ea761a"/><path d="M 364.04654 347.15765 C 361.01459 355.64142 361.67963 361.86145 353.55582 371.58398 C 359.2309 373.16605 365.1749 375.57861 367.1386 365.60889 C 370.97964 371.50235 376.07858 368.74405 376.95001 360.30106 C 382.34427 366.9916 385.39789 363.31863 385.38104 356.01114 C 391.82196 361.2205 395.95584 356.82974 397.57147 350.52094 C 392.53741 349.41669 376.80356 353.1376 372.05267 343.0982 L 364.04654 347.15765 Z" stroke="black" stroke-linecap="butt" stroke-linejoin="bevel" stroke-width=".5"/><path d="M 394.11249 324.513 C 395.06555 326.76483 394.0813 329.4295 391.91113 330.46414 C 389.73862 331.50128 387.20596 330.5194 386.2529 328.26758 C 385.29742 326.01825 386.28165 323.35349 388.45425 322.3165 C 390.62436 321.28186 393.15707 322.26367 394.11249 324.513 Z" fill="#ea761a"/><path d="M 394.11249 324.513 C 395.06555 326.76483 394.0813 329.4295 391.91113 330.46414 C 389.73862 331.50128 387.20596 330.5194 386.2529 328.26758 C 385.29742 326.01825 386.28165 323.35349 388.45425 322.3165 C 390.62436 321.28186 393.15707 322.26367 394.11249 324.513 Z" stroke="black" stroke-linecap="butt" stroke-linejoin="bevel" stroke-width=".5"/><path d="M 391.97302 325.60217 C 392.32593 326.43756 391.961 327.42422 391.15683 327.80835 C 390.3502 328.1948 389.4116 327.82993 389.05865 326.99448 C 388.70337 326.1615 389.0683 325.1748 389.8749 324.7884 C 390.6791 324.40424 391.6177 324.7691 391.97302 325.60217 Z" fill="#ea761a"/><path d="M 391.97302 325.60217 C 392.32593 326.43756 391.961 327.42422 391.15683 327.80835 C 390.3502 328.1948 389.4116 327.82993 389.05865 326.99448 C 388.70337 326.1615 389.0683 325.1748 389.8749 324.7884 C 390.6791 324.40424 391.6177 324.7691 391.97302 325.60217 Z" stroke="black" stroke-linecap="butt" stroke-linejoin="bevel" stroke-width=".5"/><path d="M 393.34122 324.13898 C 394.29422 326.39087 393.31003 329.05548 391.13983 330.09021 C 388.96722 331.12726 386.43457 330.14545 385.4815 327.89365 C 384.5261 325.64423 385.51035 322.97961 387.6829 321.94247 C 389.85312 320.90784 392.3858 321.88965 393.34122 324.13898 Z" fill="black"/><path d="M 393.34122 324.13898 C 394.29422 326.39087 393.31003 329.05548 391.13983 330.09021 C 388.96722 331.12726 386.43457 330.14545 385.4815 327.89365 C 384.5261 325.64423 385.51035 322.97961 387.6829 321.94247 C 389.85312 320.90784 392.3858 321.88965 393.34122 324.13898 Z" stroke="black" stroke-linecap="butt" stroke-linejoin="bevel" stroke-width=".5"/><path d="M 391.20554 325.22821 C 391.55844 326.06363 391.19351 327.0503 390.38934 327.43442 C 389.58276 327.82095 388.6441 327.45602 388.29123 326.6206 C 387.93588 325.78757 388.30081 324.8009 389.10742 324.41446 C 389.91162 324.03033 390.85028 324.39526 391.20554 325.22821 Z" fill="white"/><path d="M 415.78287 475.16425 L 440.7731 497.8411 C 438.176 494.99905 440.82077 477.66315 453.13977 483.4333 C 453.13208 478.91492 448.43716 476.57825 444.37906 477.16916 C 445.45706 471.17984 441.6387 466.58194 435.02066 469.9125 C 435.3988 466.16418 426.45163 462.31226 423.1708 466.70657 C 420.51797 461.42932 412.92596 456.55597 407.908 459.07904 C 412.17471 463.76093 418.65076 472.15732 415.78287 475.16425 Z" fill="#6974fb"/><path d="M 415.78287 475.16425 L 440.7731 497.8411 C 438.176 494.99905 440.82077 477.66315 453.13977 483.4333 C 453.13208 478.91492 448.43716 476.57825 444.37906 477.16916 C 445.45706 471.17984 441.6387 466.58194 435.02066 469.9125 C 435.3988 466.16418 426.45163 462.31226 423.1708 466.70657 C 420.51797 461.42932 412.92596 456.55597 407.908 459.07904 C 412.17471 463.76093 418.65076 472.15732 415.78287 475.16425 Z" stroke="black" stroke-linecap="butt" stroke-linejoin="bevel" stroke-width=".5"/><path d="M 473.63034 555.8343 C 456.48483 558.63464 445.9123 542.2688 443.53629 527.59686 C 450.29694 501.11655 428.4753 478.4842 402.54788 467.91095 C 393.61075 464.26544 376.06073 464.88104 374.12738 466.12704 C 373.32419 471.47015 375.04141 478.32056 377.64706 485.6908 C 379.33337 490.83664 386.08997 502.12006 392.73682 506.96313 C 408.96988 518.779 428.28653 506.80334 431.53174 532.0155 C 428.25201 536.16876 427.0004 548.42395 429.39157 559.3739 C 432.32513 572.8059 444.49048 585.72302 448.221 584.2527 C 443.6488 580.1703 438.66772 560.8755 446.1792 558.0218 C 454.73883 566.8781 463.14941 567.08142 471.44174 560.726 L 473.63034 555.8343 Z" fill="#6974fb"/><path d="M 469.6531 556.2727 C 471.20618 556.27112 472.69104 556.0893 474.1527 555.81805 C 472.43112 556.0288 470.63184 556.11377 468.78348 555.90973 C 456.94958 554.6178 449.8204 543.99524 446.79868 533.87024 C 446.4818 532.80518 446.21326 531.72913 445.98074 530.64233 L 445.42453 527.63123 L 445.74564 526.39105 C 446.01886 525.24237 446.25464 524.04315 446.42645 522.8473 C 446.92361 519.4198 446.95572 516.12732 446.60382 512.95233 C 445.66104 504.44687 441.9677 496.4851 436.3218 489.50513 C 435.5755 488.58133 434.81662 487.68695 434.02524 486.81116 C 428.8343 481.0669 422.73212 476.43927 416.10278 472.60349 C 413.50339 471.1018 410.81223 469.73267 408.0185 468.4892 C 405.71292 467.4635 403.44147 466.46576 400.8982 465.79315 C 398.0655 465.0474 394.97052 464.65527 392.122 464.45526 C 387.31326 464.11923 382.51056 464.10852 377.98874 464.72992 C 376.87433 464.88443 375.65875 465.00403 374.64487 465.45908 C 374.39557 465.5736 374.09338 465.93228 374.0754 466.21426 C 374.05469 466.56653 374.25159 467.0815 374.323 467.42316 C 374.45483 468.04364 374.59195 468.66254 374.73935 469.27844 C 375.23987 471.36075 375.78036 473.49393 376.77704 475.4175 C 377.32443 476.47443 378.05942 477.5182 378.98508 478.21277 C 380.29562 479.19958 381.98141 479.60648 383.80893 479.9287 C 382.35858 479.5829 381.0357 479.19116 379.8743 478.4647 C 378.39612 477.54343 377.48318 475.86383 376.92633 474.26645 C 376.4687 472.9498 376.14355 471.5859 375.88116 470.19888 L 375.31451 466.48642 C 376.52585 466.14178 377.8891 466.09692 379.18335 466.04236 C 380.8823 465.97388 382.6016 465.9699 384.33206 466.02628 C 388.76886 466.1773 393.73175 466.621 398.25336 467.76923 L 402.55655 469.1619 L 409.08871 472.332 C 411.2194 473.45123 413.29694 474.63657 415.32504 475.90833 C 418.61078 477.96985 421.7566 480.25766 424.69705 482.7701 C 427.80234 485.4263 430.727 488.31866 433.3735 491.5716 C 436.64285 495.59253 439.38742 500.12784 441.16052 504.74048 C 443.10312 509.78775 444.04688 515.122 443.6999 520.85022 C 443.61188 522.3169 443.43527 523.81653 443.15543 525.3346 C 443.0126 526.11633 442.637 527.07153 442.73938 527.81842 C 442.90894 529.05493 443.2659 530.29285 443.589 531.48816 C 444.02676 533.11084 444.55652 534.71075 445.1832 536.2716 C 448.22144 543.84247 453.60507 551.2174 461.10214 554.48706 C 462.81793 555.23572 464.69373 555.79553 466.7094 556.073 C 467.71106 556.21307 468.6896 556.27588 469.6531 556.2727 Z" fill="black"/><path d="M 449.03986 585.63812 L 449.21088 585.58044 C 449.3168 585.2702 449.35364 584.96454 449.4273 584.64355 C 449.50287 584.32544 449.5918 584.029 449.64413 583.7043 C 449.67163 583.54834 449.74487 583.3955 449.7516 583.23328 C 449.75555 583.1828 449.4816 582.98096 449.43817 582.93677 C 449.19537 582.69653 448.98444 582.42773 448.7644 582.14026 C 447.70364 580.74658 446.99261 579.16595 446.37009 577.62274 C 445.00162 574.22717 444.1253 570.62573 443.92807 566.87848 C 443.79932 564.401 444.07846 561.0351 445.98846 559.40955 L 446.61328 559.03223 L 448.8427 561.0146 C 451.7127 563.33197 455.0685 565.20337 459.18286 565.30237 C 459.7145 565.31567 460.2312 565.30194 460.74237 565.25067 C 461.26544 565.20154 461.77917 565.12146 462.2854 565.0158 C 464.71704 564.51093 467.00192 563.40002 469.14352 561.92743 C 469.61188 561.6078 470.06958 561.27887 470.51526 560.9358 C 470.76013 560.74982 471.10025 560.549 471.2931 560.3125 C 471.39127 560.19812 472.18796 558.7492 472.2658 558.6118 C 472.74533 557.77252 473.2237 556.92572 473.70163 556.08118 C 473.18213 556.8988 472.6598 557.7184 472.13583 558.53284 C 471.96356 558.80475 471.78818 559.081 471.6139 559.35004 C 471.41443 559.6659 471.27063 559.88678 471.17056 560.0398 L 471.0973 560.15125 L 468.02908 562.1234 C 464.84924 563.91254 461.38763 564.96472 457.49377 564.11237 C 456.72852 563.94574 456.01166 563.7121 455.32666 563.4353 C 454.5596 563.12695 453.8349 562.7578 453.14258 562.34326 C 451.44894 561.3304 449.93524 560.08594 448.52783 558.69458 C 447.97144 558.14545 447.16812 556.9361 446.15744 557.34528 C 445.97876 557.41864 445.79327 557.503 445.62344 557.5949 C 442.29892 559.4171 441.68338 564.11078 441.8148 567.77588 C 441.843 568.5146 441.89255 569.24243 441.97104 569.9583 C 442.05219 570.70148 442.15771 571.44397 442.28314 572.1706 C 442.4107 572.9123 442.55978 573.64307 442.72739 574.36493 C 442.99655 575.5069 443.30914 576.63696 443.68246 577.74127 L 444.95712 580.9912 L 442.68457 578.97662 C 436.90985 572.9759 432.38889 565.14612 430.5736 557.38623 C 430.61148 557.5587 430.5416 557.2221 430.50604 557.05017 C 430.45294 556.78473 430.40173 556.52222 430.3522 556.25018 C 430.18933 555.3488 430.04797 554.4366 429.93976 553.51562 C 429.6009 550.59888 429.55154 547.5749 429.87494 544.48236 C 430.18616 541.51453 430.81598 538.4956 431.87335 535.9275 C 432.0902 535.40265 432.33289 534.89697 432.59769 534.4049 C 432.83908 533.96234 433.21265 533.5578 433.42245 533.11456 C 433.74207 532.44934 433.7927 531.71973 433.69476 531.0589 C 433.27927 528.23102 432.58432 525.4807 431.39594 522.87494 C 429.74503 519.25647 427.02478 516.49036 423.5601 514.83606 C 418.26035 512.30725 411.43134 512.25867 405.39847 510.9292 C 402.43225 510.27692 399.6731 509.39056 397.1702 508.1157 C 396.3379 507.69342 395.53809 507.23798 394.75781 506.74207 C 394.55188 506.61066 394.35098 506.47766 394.14862 506.33963 C 394.1009 506.30682 394.04584 506.27283 393.9961 506.23718 L 393.86313 506.14792 L 391.03207 503.84482 C 388.32416 501.35394 385.97891 498.34177 383.79999 495.17374 C 381.87881 492.38272 380.12344 489.46729 378.86688 486.47415 C 378.40524 485.3738 377.98422 484.1808 377.56345 483.08264 C 376.29727 479.7709 375.03018 476.46387 373.75964 473.14886 C 374.03278 473.99164 374.30737 474.83966 374.57855 475.67972 C 374.85165 476.5225 375.12665 477.3682 375.39783 478.20825 C 375.67096 479.05103 375.94608 479.89667 376.21716 480.7367 C 377.07556 483.3891 377.81879 486.11383 378.93652 488.67795 C 380.72113 492.7685 383.07547 496.76697 385.87494 500.5076 C 387.28748 502.39478 388.77716 504.19077 390.4054 505.76743 C 391.1238 506.462 391.87164 507.19843 392.68655 507.74677 C 393.42273 508.24463 394.12372 508.79 394.88525 509.26797 C 396.57248 510.33093 398.39105 511.21463 400.3259 511.9653 C 403.17062 513.07147 406.28125 513.80273 409.49496 514.40607 C 414.18262 515.29108 419.03696 515.89355 422.82892 517.97357 C 426.0137 519.72223 428.06952 522.96613 429.134 526.37152 C 429.4911 527.5119 429.7647 528.6839 429.9801 529.8676 C 430.07095 530.36145 430.14813 530.85034 430.2169 531.3451 L 430.25638 531.63245 L 429.23679 533.29553 C 426.2642 539.03864 425.66467 546.90405 426.29648 553.09503 C 426.44522 554.5326 426.65387 555.9345 426.93246 557.3269 C 427.28275 559.073 427.7577 560.77533 428.3661 562.4403 C 429.1668 564.6316 430.15198 566.77252 431.29755 568.86115 C 432.76 571.53003 434.52414 574.1884 436.44653 576.62616 C 437.99667 578.5913 439.6505 580.4236 441.45236 582.05267 C 442.6881 583.17255 443.9773 584.2116 445.46347 584.99048 C 446.47635 585.52252 447.89767 586.01935 449.03986 585.63812 Z" fill="black"/><path d="M 392.6246 495.00363 C 394.31863 494.53448 395.97913 493.81314 397.49097 492.77322 C 402.0798 489.62842 404.42114 484.6589 405.02148 478.6828 C 405.27298 476.19196 405.20782 473.79645 405.05414 471.41946 C 403.62012 479.55222 401.1415 487.29108 394.854 491.81586 C 393.69217 492.65424 392.49405 493.35226 391.25534 493.92126 C 389.41928 494.7675 387.52792 495.36035 385.578 495.84293 C 388.0449 495.82935 390.34567 495.63782 392.6246 495.00363 Z" fill="black"/><path d="M 399.80746 503.36148 C 401.47964 511.1862 400.16489 516.5829 406.17386 526.0938 C 400.99237 526.82074 395.47833 528.24463 394.92065 519.24152 C 390.8458 523.97852 386.68231 520.9505 386.90894 513.4167 C 381.3727 518.67114 379.11728 515.08014 379.99026 508.65002 C 373.70853 512.47864 370.58478 508.12988 369.90576 502.38657 C 374.46548 502.00583 387.87646 507.12753 393.23611 498.85095 L 399.80746 503.36148 Z" fill="#6974fb"/><path d="M 399.80746 503.36148 C 401.47964 511.1862 400.16489 516.5829 406.17386 526.0938 C 400.99237 526.82074 395.47833 528.24463 394.92065 519.24152 C 390.8458 523.97852 386.68231 520.9505 386.90894 513.4167 C 381.3727 518.67114 379.11728 515.08014 379.99026 508.65002 C 373.70853 512.47864 370.58478 508.12988 369.90576 502.38657 C 374.46548 502.00583 387.87646 507.12753 393.23611 498.85095 L 399.80746 503.36148 Z" stroke="black" stroke-linecap="butt" stroke-linejoin="bevel" stroke-width=".5"/><path d="M 392.67337 475.86877 C 391.72366 478.3657 388.93045 479.71848 386.434 478.89066 C 383.93942 478.06573 382.69073 475.37375 383.64044 472.87686 C 384.5921 470.3827 387.38531 469.02997 389.87985 469.8549 C 392.37628 470.6827 393.62506 473.3747 392.67337 475.86877 Z" fill="black"/><path d="M 392.67337 475.86877 C 391.72366 478.3657 388.93045 479.71848 386.434 478.89066 C 383.93942 478.06573 382.69073 475.37375 383.64044 472.87686 C 384.5921 470.3827 387.38531 469.02997 389.87985 469.8549 C 392.37628 470.6827 393.62506 473.3747 392.67337 475.86877 Z" stroke="black" stroke-linecap="butt" stroke-linejoin="bevel" stroke-width=".5"/><path d="M 390.16306 475.1172 C 389.81216 476.0426 388.77536 476.54477 387.84995 476.23535 C 386.92651 475.9287 386.46387 474.93057 386.81473 474.0052 C 387.16757 473.08252 388.20438 472.58044 389.12778 472.88705 C 390.0532 473.19647 390.51584 474.19464 390.16306 475.1172 Z" fill="white"/><path d="M 315.19626 503.27756 L 309.10336 543.39062 C 309.36359 538.7683 293.7388 524.60535 286.63428 539.33624 C 283.21231 535.11743 285.81378 529.37714 290.04251 526.84814 C 284.49673 522.0802 284.57062 514.89417 293.26587 512.97363 C 290.06964 509.76993 295.49216 499.38736 301.88528 500.9948 C 300.35547 494.05533 303.73672 483.75122 310.32684 482.29865 C 309.90863 489.89957 310.23828 502.64322 315.19626 503.27756 Z" fill="#6d6912"/><path d="M 315.19626 503.27756 L 309.10336 543.39062 C 309.36359 538.7683 293.7388 524.60535 286.63428 539.33624 C 283.21231 535.11743 285.81378 529.37714 290.04251 526.84814 C 284.49673 522.0802 284.57062 514.89417 293.26587 512.97363 C 290.06964 509.76993 295.49216 499.38736 301.88528 500.9948 C 300.35547 494.05533 303.73672 483.75122 310.32684 482.29865 C 309.90863 489.89957 310.23828 502.64322 315.19626 503.27756 Z" stroke="black" stroke-linecap="butt" stroke-linejoin="bevel" stroke-width=".5"/><path d="M 360.37427 479.71823 C 343.81323 474.76978 328.20563 475.10336 315.90976 493.7116 L 299.2395 556.60596 C 289.51816 578.36505 262.26764 581.97516 253.65353 558.0036 C 247.702 561.5014 248.24934 572.40942 257.32928 587.1947 C 256.08243 596.01654 257.38123 604.59955 261.2955 612.9362 C 264.78311 602.8109 265.9404 592.95496 289.10031 580.53998 L 329.06287 558.5717 C 340.225 549.12097 348.64478 538.2262 349.14392 523.15076 C 349.89691 514.51135 349.68915 506.07697 357.03525 496.04617 C 359.5827 490.26727 362.22562 484.4647 360.37427 479.71823 Z" fill="#6d6912"/><path d="M 264.74863 603.53894 C 267.90518 596.68042 272.48422 590.6053 277.87115 585.87512 C 282.77338 581.57263 288.44537 578.1642 294.47803 575.17065 C 303.0502 570.92053 312.27103 567.35724 320.41092 562.58392 C 326.32797 559.11694 331.56653 555.0027 336.03229 549.82184 C 337.11298 548.57025 338.12402 547.24677 339.09143 545.86743 L 341.85574 541.60315 L 343.79614 537.24976 C 344.32233 535.7578 344.74841 534.24133 345.1592 532.7138 C 345.81445 530.26178 346.37958 527.8051 346.92917 525.3252 C 348.25467 519.3191 349.46603 513.25226 351.2624 507.34894 C 353.1424 501.16495 355.88617 493.26636 362.11932 490.06445 C 357.55408 492.86035 355.35837 498.3932 353.96542 503.30518 C 353.43857 505.16113 352.9949 507.0332 352.60638 508.919 C 351.9484 512.1137 351.42038 515.3454 350.91702 518.576 C 350.29507 522.57098 349.7394 526.57404 349.00381 530.54047 C 348.3905 533.8355 347.7154 537.12128 346.57327 540.29077 C 345.90771 542.13672 345.00989 543.88464 343.96613 545.65167 C 342.2543 548.55005 340.36264 551.2237 338.26434 553.65442 C 333.06882 559.67792 326.7667 564.25037 319.64127 568.021 C 309.15628 573.56958 297.02652 577.2248 286.77081 583.01794 C 280.47733 586.5738 274.90253 590.9872 270.42511 596.65582 C 266.35959 601.80383 263.22208 607.85596 261.01459 613.8369 C 262.01123 610.3623 263.19699 606.9121 264.74863 603.53894 Z" fill="black"/><path d="M 281.21643 574.5774 C 279.94254 574.76642 278.68079 574.8459 277.44586 574.84454 C 274.63553 574.8451 271.89279 574.4428 269.22467 573.8042 C 268.13379 573.54675 267.06271 573.24963 265.99216 572.91534 C 265.58224 572.78986 265.1824 572.6645 264.77655 572.52563 C 264.46634 572.42236 264.1597 572.3134 263.8505 572.2049 C 263.16074 571.96857 263.4815 572.09393 263.57352 572.1056 C 262.42712 571.80518 261.37042 570.9701 260.47653 570.2132 C 259.62747 569.4972 258.86655 568.70703 258.1514 567.87347 C 256.15585 565.55548 254.29405 562.45453 254.31589 559.01984 C 254.50966 562.99194 257.15399 566.1949 259.76492 568.50043 C 260.62277 569.26135 261.5834 570.0288 262.66086 570.57904 C 263.54095 571.0327 264.48523 571.21777 265.4259 571.45825 C 266.31259 571.68994 267.20096 571.88904 268.09741 572.07123 C 272.86539 573.04486 278.10236 573.47845 283.353 571.69434 C 285.08197 571.10742 286.63245 570.31012 288.0328 569.32758 C 290.18503 567.81866 291.9761 565.94196 293.54068 563.73352 C 296.53018 559.5193 298.3173 554.7193 299.76535 550.05823 C 301.18472 545.4909 302.24924 540.8291 303.23145 536.15558 C 305.40442 525.81866 307.13626 515.35925 310.26169 505.2401 C 312.37616 498.38922 315.35254 490.99667 320.22534 485.2466 C 323.2764 481.64563 327.00262 478.76947 331.64536 477.03793 C 334.2421 476.07126 337.1199 475.51706 339.7605 475.32132 C 345.96103 474.86646 351.94858 476.06796 357.64648 477.88345 C 358.11954 478.03516 358.59225 478.18454 359.06671 478.34082 C 359.7718 478.57822 360.50992 478.6812 360.9618 479.31317 C 361.25275 479.72562 361.2843 480.4773 361.33972 480.9781 C 361.5823 483.2705 361.0814 485.3895 360.16614 487.414 C 358.37604 491.3685 355.0484 494.45465 351.38367 496.37778 C 350.04068 497.0838 348.49158 497.658 346.87271 497.89343 C 348.1527 497.6287 349.2772 497.16766 350.33203 496.60547 C 351.27792 496.1023 352.15811 495.51422 352.98645 494.8673 C 356.71582 491.95328 360.1796 487.22006 359.89462 482.2265 L 359.53827 480.30148 L 357.85358 479.8457 C 356.4924 479.49731 355.13077 479.19601 353.7506 478.9191 C 349.9414 478.1593 346.06686 477.78183 342.04172 478.00116 C 340.39447 478.09268 338.72504 478.32324 337.01422 478.71527 C 329.86334 480.3596 324.8556 484.6761 321.2106 490.42914 C 317.49814 496.28824 315.42664 502.6461 313.694 508.97394 C 311.01355 518.76434 309.31992 528.79108 306.94626 538.65088 C 305.84592 543.21802 304.61566 547.7307 303.02557 552.1798 C 301.78964 555.6375 300.31287 559.03143 298.31534 562.31287 C 294.5047 568.5724 289.14108 573.40564 281.21643 574.5774 Z" fill="black"/><path d="M 340.41873 522.22308 C 344.22507 531.05927 349.27368 535.43164 349.99646 548.93817 C 355.58438 546.0456 361.97998 543.60486 356.26254 534.38678 C 363.5516 536.19403 365.52551 530.32812 360.0624 523.10254 C 369.14691 524.40027 368.86005 519.3108 363.53033 513.61298 C 372.34882 513.00024 372.3837 506.5613 369.0537 500.44928 C 364.31708 503.25323 354.7337 517.60754 343.71988 513.2256 L 340.41873 522.22308 Z" fill="#6d6912"/><path d="M 340.41873 522.22308 C 344.22507 531.05927 349.27368 535.43164 349.99646 548.93817 C 355.58438 546.0456 361.97998 543.60486 356.26254 534.38678 C 363.5516 536.19403 365.52551 530.32812 360.0624 523.10254 C 369.14691 524.40027 368.86005 519.3108 363.53033 513.61298 C 372.34882 513.00024 372.3837 506.5613 369.0537 500.44928 C 364.31708 503.25323 354.7337 517.60754 343.71988 513.2256 L 340.41873 522.22308 Z" stroke="black" stroke-linecap="butt" stroke-linejoin="bevel" stroke-width=".5"/><path d="M 332.6806 501.97403 C 332.14227 501.57135 331.63303 501.14667 331.14832 500.70087 C 330.46872 500.07855 329.82281 499.42325 329.22415 498.7288 C 326.88055 496.01758 325.28027 492.79456 323.83792 489.28214 C 327.39096 494.5518 331.56271 499.21704 337.45297 502.40964 C 338.2712 502.85388 339.0867 503.25674 339.9238 503.62698 C 343.11462 505.04324 346.41837 505.90933 349.80307 506.46585 C 343.66498 506.73444 337.7768 505.8125 332.6806 501.97403 Z" fill="black"/><path d="M 347.56516 482.4999 C 349.35895 484.3957 349.36755 487.42676 347.5859 489.27133 C 345.8025 491.11877 342.90125 491.0827 341.10742 489.18692 C 339.31186 487.29413 339.30331 484.2629 341.08667 482.4154 C 342.86835 480.57086 345.76965 480.6071 347.56516 482.4999 Z" fill="#6d6912"/><path d="M 347.56516 482.4999 C 349.35895 484.3957 349.36755 487.42676 347.5859 489.27133 C 345.8025 491.11877 342.90125 491.0827 341.10742 489.18692 C 339.31186 487.29413 339.30331 484.2629 341.08667 482.4154 C 342.86835 480.57086 345.76965 480.6071 347.56516 482.4999 Z" stroke="black" stroke-linecap="butt" stroke-linejoin="bevel" stroke-width=".5"/><path d="M 345.8332 484.38425 C 346.4988 485.08923 346.50214 486.21408 345.8415 486.8984 C 345.17914 487.58563 344.10419 487.57156 343.4386 486.8667 C 342.77124 486.16464 342.76788 485.03967 343.43024 484.35245 C 344.09094 483.66833 345.16586 483.6823 345.8332 484.38425 Z" fill="#6d6912"/><path d="M 345.8332 484.38425 C 346.4988 485.08923 346.50214 486.21408 345.8415 486.8984 C 345.17914 487.58563 344.10419 487.57156 343.4386 486.8667 C 342.77124 486.16464 342.76788 485.03967 343.43024 484.35245 C 344.09094 483.66833 345.16586 483.6823 345.8332 484.38425 Z" stroke="black" stroke-linecap="butt" stroke-linejoin="bevel" stroke-width=".5"/><path d="M 339.10947 488.19864 C 340.3324 490.57306 343.25693 491.6055 345.64474 490.50537 C 348.03091 489.40823 348.97427 486.5925 347.75131 484.218 C 346.52655 481.8464 343.60202 480.8139 341.216 481.91107 C 338.828 483.01123 337.8848 485.82687 339.10947 488.19864 Z" fill="black"/><path d="M 339.10947 488.19864 C 340.3324 490.57306 343.25693 491.6055 345.64474 490.50537 C 348.03091 489.40823 348.97427 486.5925 347.75131 484.218 C 346.52655 481.8464 343.60202 480.8139 341.216 481.91107 C 338.828 483.01123 337.8848 485.82687 339.10947 488.19864 Z" stroke="black" stroke-linecap="butt" stroke-linejoin="bevel" stroke-width=".5"/><path d="M 341.5216 487.16687 C 341.9739 488.0486 343.06128 488.43066 343.94672 488.02197 C 344.83005 487.61615 345.17838 486.57178 344.72607 485.68994 C 344.27179 484.81107 343.18439 484.42902 342.30093 484.83487 C 341.41565 485.24362 341.06741 486.28796 341.5216 487.16687 Z" fill="white"/></g></g></svg>
!Introduction
TiddlyWiki5 is based on a 1,000 line boot kernel that runs on node.js or in the browser, with all other functionality added via dynamically loaded modules.
The kernel boots just enough of the TiddlyWiki environment to allow it to load tiddlers and execute JavaScript modules. Plugin modules are written like `node.js` modules.
There are many [[different types of module|ModuleType]]: parsers, deserializers, widgets etc. It goes much further than you might expect. For example, individual tiddler fields are modules, too: there's a module that knows how to handle the `tags` field, and another that knows how to handle the special behaviour of the `modified` and `created` fields.
Some plugin modules have further sub-plugins: the wikitext parser, for instance, accepts rules as individual plugin modules.
!Plugins and Modules
In TiddlyWiki5, [[Plugins]] are bundles of tiddlers that are distributed and managed as one; [[Modules]] are JavaScript tiddlers with a module type identifying when and how they should be executed.
The tiddler [[$:/core/boot.js]] is a barebones TiddlyWiki kernel that is just sufficient to load the core plugin modules and trigger a startup module to load up the rest of the application.
The kernel includes:
* Several short shared utility functions
* A handful of methods implementing the plugin module mechanism
* The `$tw.Tiddler` class (and field definition plugins)
* The `$tw.Wiki` class (and tiddler deserialization methods)
* Code for the browser to load tiddlers from the HTML DOM
* Code for the server to load tiddlers from the file system
Each module is an ordinary `node.js`-style module, using the `require()` function to access other modules and the `exports` global to return JavaScript values. The boot kernel smooths over the differences between `node.js` and the browser, allowing the same plugin modules to execute in both environments.
In the browser, `core/boot.js` is packed into a template HTML file that contains the following elements in order:
* Ordinary and system tiddlers, packed as HTML `<DIV>` elements
* `core/bootprefix.js`, containing a few lines to set up the plugin environment
* JavaScript modules, packed as HTML `<SCRIPT>` blocks
* `core/boot.js`, containing the boot kernel
On the server, `core/boot.js` is executed directly. It uses the `node.js` local file API to load plugins directly from the file system in the `core/modules` directory. The code loading is performed synchronously for brevity (and because the system is in any case inherently blocked until plugins are loaded).
The boot kernel sets up the `$tw` global variable that is used to store all the state data of the system.
TiddlyWiki5 allows the entire content of a TiddlyWiki HTML file to be encrypted with the Stanford JavaScript Crypto Library. Opening an encrypted TiddlyWiki in the browser prompts for a password before decrypting and displaying the content.
The EncryptionMechanism is implemented with the following elements:
* A crypto "password vault" within the BootMechanism that holds the current encryption password
* The ability of the BootMechanism to read a block of encrypted tiddlers from the TiddlyWiki file, to prompt the user for a password, and to decrypt the tiddlers
* Handlers for the messages SetPasswordMessage and ClearPasswordMessage that handle the user interface for password changes
* The `<$encrypt>` widget within the main file template that encrypts a filtered list of tiddlers with the currently held password
* The [[$:/isEncrypted]] tiddler that contains "yes" or "no" according to whether there is a password in the password vault
** The availability of this tiddler allows the RevealWidget to be used to selectively display user interface elements according to whether encryption is in force
* The [[$:/snippets/encryptionstatus]] snippet that displays the current encryption status
[[Plugins]] are bundles of tiddlers that are distributed and managed as a single unit by being packed into a single JSON tiddler. If a tiddler isn't found in the main store, then the loaded plugins are searched for it instead.
Tiddlers within plugins behave something like shadow tiddlers in classic TiddlyWiki: they can be freely overwritten by creating a tiddler with the same title, but deleting that tiddler restores the underlying tiddler value from the plugin.
Plugins conventionally have a title of the form `$:/plugins/publisher/name`. Plugins that are part of the core TiddlyWiki distribution have titles of the form `$:/plugins/tiddlywiki/name`.
Plugins that define macros, views or other named entities are expected to prefix the name with their publisher identifier, for example: `tiddlytools.slider`.
! Plugin format
Plugins are stored as tiddlers of type `application/json` with the field `plugin` present and the text containing a JSON structure encoding the plugin metadata and the list of tiddlers within it.
The JSON structure for plugin tiddlers is as follows:
```
{
"title": "$:/plugins/publisher/name",
"description": "An exemplary plugin for demonstration purposes",
"author": "JeremyRuston",
"version": "1.2.3-alpha3",
"coreVersion": ">=5.0.0",
"source": "http://tiddlywiki.com/MyPlugin",
"tiddlers": {
"title1": {"type": "image/png", "text": "<base64>"},
"title2": {"text": "Text"}
}
}
```
The titles of the individual tiddlers within a plugin are automatically prefixed with the title of the plugin itself and a slash `/`. Thus, in the example above the two tiddlers within the plugin will have the titles `$:/plugins/publisher/name/title1` and `$:/plugins/publisher/name/title2`.
! Plugin folders
On the server, plugins can be stored as ordinary JSON tiddlers but it is often more convenient to store them as separate tiddler files within folders. Plugin folders must contain a `plugin.bundle` file that contains the metadata for the plugin. It can also optionally identify files external to the plugin folder that should be loaded as tiddlers.
The `plugin.bundle` file should contain the following JSON structure:
```
{
"metadata": {
<as described above>
},
"externalTiddlers": [
{"file": "../MyFile.png", "fields": {"title": "MyTitle", "type": "image/png"}},
{"file": "../MyFile.txt", "fields": {"title": "MyTitle2"}}
]
}
```
The titles of the external tiddlers are again relative to the title of the plugin. Constituent tiddler files must specify the full title of the tiddler, including the name of the plugin.
! Plugin library
The standard distribution of TiddlyWiki includes a number of standard plugins in the `plugins` directory.
! Including plugins in a wiki
To be usable in the browser, plugins just need to be included in the wiki. This is done when the wiki is generated on the server.
A folder containing an exploded TiddlyWiki can contain a `tiddlywiki.info` file that identifies the plugins to be included in this wiki:
```
{
"plugins": [
"slider",
"chooser",
"tiddlytools/superslider",
"../../myplugins/specialone",
"/mylib/another",
]
}
```
Plugins can be identified in several ways:
* Names that do not contain a slash are interpreted as the name of a TiddlyWiki core plugin (ie, `$:/plugins/tiddlywiki/<name>`)
* Names that start with a slash or dot are interpreted as pathnames to a plugin file or folder
* Names that contain a single slash that is not at the start or end are interpreted as names of plugins from the core plugin library (ie, `$:/plugins/<publisher/name>`)
Plugins can also be included manually by copying them into the `plugins` subfolder of the wiki.
! Plugin processing
The wiki object keeps track of all of the currently loaded plugins. If a request for a tiddler isn't in the store then the wiki looks through the cascade of plugins to find the requested tiddler. It is a similar idea to the way that shadow tiddlers are implemented in classic TiddlyWiki.
In the browser, any constituent tiddlers that are static styles (ie shadow tiddlers of content type `text/css`) or JavaScript modules (ie shadow tiddlers of content type `application/javascript` and possessing the field `module-type`) are added to the DOM during startup processing.
! Introduction
SyncAdaptorModules encapsulate storage mechanisms that can be used by the SyncMechanism. Two examples are:
* The TiddlyWebAdaptor interfaces with servers compatible with TiddlyWeb's HTTP API, such as TiddlyWeb itself and TiddlyWiki5's built-in ServerMechanism.
* The LocalFileAdaptor interfaces with file systems with an API compatible with node.js's `fs` module
SyncAdaptorModules are represented as JavaScript tiddlers with the field `module-type` set to `syncadaptor`.
! Exports
The following properties should be exposed via the `exports` object:
|!Property |!Description |
|adaptorClass |The JavaScript class for the adaptor |
Nothing should be exported if the adaptor detects that it isn't capable of operating successfully (eg, because it only runs on either the browser or the server, or because a dependency is missing).
! Adaptor Module Methods
Adaptor modules must handle the following methods.
!! `Constructor(syncer)`
Initialises a new adaptor instance.
|!Parameter |!Description |
|syncer |Syncer object that is using this adaptor |
!! `getTiddlerInfo(tiddler)`
Gets the supplemental information that the adaptor needs to keep track of for a particular tiddler. For example, the TiddlyWeb adaptor includes a `bag` field indicating the original bag of the tiddler.
|!Parameter |!Description |
|tiddler |Target tiddler |
Returns an object storing any additional information required by the adaptor.
!! `getStatus(callback)`
Retrieves status information from the server. This method is optional.
|!Parameter |!Description |
|callback |Callback function invoked with parameters `err,isLoggedIn,username` |
!! `login(username,password,callback)`
Attempts to login to the server with specified credentials. This method is optional.
|!Parameter |!Description |
|username |Username |
|password |Password |
|callback |Callback function invoked with parameter `err` |
!! `logout(callback)`
Attempts to logout of the server. This method is optional.
|!Parameter |!Description |
|callback |Callback function invoked with parameter `err` |
!! `getSkinnyTiddlers(callback)`
Retrieves a list of skinny tiddlers from the server.
This method is optional. If an adaptor doesn't implement it then synchronisation will be unidirectional from the TiddlyWiki store to the adaptor, but not the other way.
|!Parameter |!Description |
|callback |Callback function invoked with parameter `err,tiddlers`, where `tiddlers` is an array of tiddler field objects |
!! `saveTiddler(tiddler,callback)`
Saves a tiddler to the server.
|!Parameter |!Description |
|tiddler |Tiddler to be saved |
|callback |Callback function invoked with parameter `err,adaptorInfo,revision` |
!! `loadTiddler(title,callback)`
Loads a tiddler from the server.
|!Parameter |!Description |
|title |Title of tiddler to be retrieved |
|callback |Callback function invoked with parameter `err,tiddlerFields` |
!! `deleteTiddler(title,callback)`
Delete a tiddler from the server.
|!Parameter |!Description |
|title |Title of tiddler to be deleted |
|callback |Callback function invoked with parameter `err` |
WikiRuleModules cover the module types 'wikirunrule', 'wikiblockrule' and `wikipragmarule`. Modules of these types encapsulate the logic of individual parsing rules used by the WikiParser engine. For example, there is a `wikirunrule` module that identifies references to HTML entities by matching the pattern `&<chars>;`.
Pragma rules are applied at the start of a block of text, and cover definitions and declarations that affect the parsing of the rest of the text. Block rules are only applied at the beginning of a block of wikitext, while run rules can appear anywhere. The only current example of a pragma rule is for macro definitions.
Examples of block rules:
* Headings
* Tables
* Lists
Examples of run rules:
* Entities
* HTML tags
* Wiki links
Parser rule modules extend the `$tw.WikiParserRule` class. This is done by instantiating the class and then copying the exports of the rule module onto the instance. In this way, the parser rule can override the base behaviour of the `$tw.WikiParserRule` class. In particular, the base class incorporates logic for using regular expressions to match parse rules but this logic could be overridden by a parse rule that wanted to, say, use `indexOf()` instead of regular expressions.
The standard methods and properties of parser rules are as follows:
* `name`: a string containing the name of this parse rule
* `init(parser)`: initialisation function called immediately after the constructor with a pointer back to the parser containing this rule
* `findNextMatch(pos)`: returns the position of the next match after the specified position
* `parse()`: parses the most recent match, returning an array of the generated parse tree nodes. Pragma rules don't return parse tree nodes but instead modify the parser object directly (for example, to add local macro definitions)
The built in parser rules use regular expression matching. Such rules can take advantage of the implementation of `findNextMatch()` in the base `$tw.WikiRule` class by ensuring that their `init()` method creates a `matchRegExp` property containing the regular expression to match. The `match` property contains the details of the match for use in the `parse()` method.
\define tw-wikilink-template() http://five.tiddlywiki.com/static/$uri_encoded$.html
! Welcome to TiddlyWiki5
{{HelloThere}}
! Getting started with TiddlyWiki under node.js
{{TiddlyWiki5 Node Edition}}
//This readme file was automatically generated by TiddlyWiki5//
\define tw-wikilinks() no
! Building classic TiddlyWiki with TiddlyWiki5
{{Building classic TiddlyWiki with TiddlyWiki5}}
TiddlyWiki5 is currently an alpha release, meaning that it is incomplete and subject to change.
! Alpha Release
There has already been a series of alpha releases of TiddlyWiki5. The goal of these releases is to test the new technical architecture and to explore user interface features.
Some of the features and fixes required before the beta is declared include:
* ~~Synchronisation via HTTP in the browser~~
* Synchronisation via direct file access under node.js
* ~~Preliminary integration with TiddlySpace~~
* ~~Preliminary integration with TiddlySpot~~
* ~~Saving changes to a file URI using Firefox~~
* Move default tiddler storage from TiddlyWiki-style `<div>` elements to JSON
* ~~Lazy loading~~
* Better handling of binary tiddlers
! Beta Release
TiddlyWiki5 will progress to a beta release when it is practical for cautious everyday use.
Some of the additional features under consideration during the beta include:
* Ability to ~~inspect and~~ edit tiddler fields
* Aliases/inheritance
* WikiText ~~table and~~ block quote support
* More user interface widgets, including: tabs, popovers, toolbars, carousel, dropdown,
* ~~Checkbox support~~
** For example, `<<checkbox {tag}>>` in a template displays a checkbox representing whether or not each tiddler carries the specified tag
* ~~Search~~
* Tiddler themes and wiki themes
* Text references: slices and sections, JSON references
* ~~Timed refreshed relative dates (eg, 'last modified 30 minutes ago')~~
* Encrypted tiddlers and ~~encrypted TiddlyWikis~~
* Facebook, Twitter, G+ and LinkedIn macros
* Integration with the browser back and forwards buttons
! 1.0 Release
Hopefully, TiddlyWiki5 will reach version 1.0 while we're still early in 2013. This is the point at which it is declared stable enough for general use. It will continue to improve and evolve after 1.0, although constrained to remain backwards compatible so that plugins and content created for version 1.0 will continue to work into the indefinite future.
<<navigator story:"$:/CecilyStoryList" history:"$:/CecilyHistoryList"><
"Cecily" provides a customisable ZoomableUserInterface to your tiddlers.
[[Docs]] - HelloThere - AllTiddlers
<<zoomable width:"100%" height:"400px" class:"tw-well"><
<<list filter:"[list[$:/CecilyStoryList]]" history:"$:/CecilyHistoryList" template:"CecilyTemplate" editTemplate:"$:/templates/EditTemplate" listview:cecily itemClass:"tw-tiddler-frame">>
>>
>>
<div class="title">
<span><<view title>></span>
<<button close class:"btn-invisible pull-right"><[img[$:/core/images/close-button.svg]]>>
</div>
<div class="small">
<<view modifier link>> <<view modified date>>
</div>
{{tw-tags-wrapper{
<<list filter:[is[current]tags[]] template:"$:/templates/TagTemplate" block:no>>
}}}
<div class="body">
<<view text wikified>>
</div>
"Cecily" provides a customisable ZoomableUserInterface to your tiddlers.
<<scrollable width:"100%" height:"400px" class:"tw-well"><
<<list filter:"[list[$:/StoryList]]" history:"$:/HistoryList" template:"CecilyTemplate" editTemplate:"$:/templates/EditTemplate" listview:cecily itemClass:"tw-tiddler-frame">>
>>
/*
This is an example JavaScript file
*/
function myFunction(param) {
return param * Math.PI; // Perform a calculation
}
/*
This is an example JavaScript program that contains an error
*/
function myFunction(param) {
if(=) { // An error
param = param/17;
}
return param * Math.PI; // Perform a calculation
}
{
"glossary": {
"title": "example glossary",
"GlossDiv": {
"title": "S",
"age": 34,
"GlossList": {
"GlossEntry": {
"ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Standard Generalized Markup Language",
"Acronym": "SGML",
"Abbrev": "ISO 8879:1986",
"GlossDef": {
"para": "A meta-markup language, used to create markup languages such as DocBook.",
"GlossSeeAlso": ["GML", "XML", 23]
},
"GlossSee": "markup"
}
}
}
}
}
This is test tiddler SampleTiddlerFirst.
This is test tiddler SampleTiddlerSecond.
This is test tiddler SampleTiddlerThird.
This is a modal wizard dialogue, stored in the tiddler SampleWizard.
{{Motovun Jack.jpg}}
You can <$button message="tw-modal" param="Demos" class="btn btn-inverse">nest wizards</$button>.
<<navigator story:"$:/SubStoryList" history:"$:/SubHistoryList"><
This view shows a different list of tiddlers stacked horizontally. Links are opened within the sideways view.
[[Docs]] - HelloThere - AllTiddlers
<<scrollable width:"100%" height:"400px" class:"tw-well"><
<<list filter:"[list[$:/SubStoryList]]" history:"$:/SubHistoryList" template:"CecilyTemplate" editTemplate:"$:/templates/EditTemplate" listview:sideways itemClass:"tw-tiddler-frame">>
>>
>>
This view shows your tiddlers stacked horizontally.
<<scrollable width:"100%" height:"400px" class:"tw-well"><
<<list filter:"[list[$:/StoryList]]" history:"$:/HistoryList" template:"CecilyTemplate" editTemplate:"$:/templates/EditTemplate" listview:sideways itemClass:"tw-tiddler-frame">>
>>
! Outstanding tasks
<$list filter="[!has[draft.of]tag[task]!tag[done]sort[created]]">
<$checkbox tag="done"> <$view field="title" format="link"/></$checkbox>
</$list>
! Completed tasks
<$list filter="[!has[draft.of]tag[task]tag[done]sort[created]]">
<$checkbox tag="done"> <$view field="title" format="link"/></$checkbox>
</$list>
! TiddlyWiki
[img[Motovun Jack.jpg]]
a reusable non-linear personal web notebook
//TiddlyWiki is a free, open source project that depends on [[your love and support|HelpingTiddlyWiki]] for its survival//
* HelloThere
* [[Introduction]]
* [[Docs]]
* [[Acknowledgements]]
a non-linear personal web notebook
!!! Intro
# Open http://en.wikipedia.org/wiki/Oxford
# Show how advanced wiki users open pages in separate tabs
# TiddlyWiki started with the idea of making a wiki like GMail
#* First version of TiddlyWiki in 2004: http://tiddlywiki.com/firstversion.html
#* Current version: http://tiddlywiki.com/
#* Turned out to be interesting because it encourages short writing
# It was just a demo, feedback provoked making it practical
#* http://deferentialgeometry.org/ - the open notebook of a theoretical physicist
#* http://oxkunengroup.tiddlyspace.com/ -- group of Oxford recreational mathematicians
# Jeremy's company Osmosoft acquired by BT in 2007 - http://osmosoft.com/
!!! User experience
# Open http://five.tiddlywiki.com/
# Now left BT, rebooting TiddlyWiki while freelance consulting as part of 25 year plan
# An open source project for end users
# Show reading experience
# Show editting, including editing bitmaps
# Tiddler model: a bag of tiddlers, each a set of name:value pairs, with some fields being standardised
# Information is more reusable if cut up into the smallest semantic units, and made addressable by name/URI
# Technically, html file is data plus a javascript application to manipulate it
#* Server is static, hosted on GitHub Pages
!!! API
# Open dev tools console
# Show api
#* `$tw.wiki.deleteTiddler("HelloThere")`
#* `$tw.wiki.addTiddler({title: "HelloThere", text: "This is a new Tiddler, linking to a TiddlerThatDoesntCurrentlyExist"})`
#* `$tw.wiki.getTiddlerLinks("HelloThere")`
#* `$tw.wiki.filterTiddlers("[tag[docs]sort[modified]]")`
!!! Using the standalone edition
# Open http://five.tiddlywiki.com/empty.html in Chrome Canary
# Create tiddlers, show links, missing, orphans, tags, tagging, references
# Use missing tiddlers to find a typo
# Show transclusion and templates
# Click Save, click `accept`
# Open file in text editor, see content within it
# Note that saving technique works in virtually all browsers
!!! Using the encrypted edition
# Set password
# Click Save again, click `accept`
# Open file in text editor, verify content is encrypted
!!! Using TiddlyFox
# Open saved file in Firefox, show TiddlyFox dialogue
# Enter password to decrypt
# Start adding tasks
# Save using TiddlyFox, refresh to show changes
!!! Task management demo
# Create some tasks
# Import and demo TaskManagementDemo
# Algebra of tiddlers
!!! Saving online
# Open http://tiddlyspot.com/
# Simple PHP scripts
# Show TiddlySpot integration
!!! Using the node.js edition
# Open http://five.tiddlywiki.com/static.html
# Click links to show individual tiddlers
!!! Server integration with TiddlyWeb/TiddlySpace
# Open http://tw5test.tiddlyspace.com/tw5
# Open network console
# Show lazy loading
!!! TiddlyWiki5 ClientServer edition
# Start `./serve.sh`
# Open http://0.0.0.0:8080/
# Open network console
# Note same code on client and server
#* Same sync engine, too
!!! Wrap-up
# Open https://github.com/Jermolene/TiddlyWiki5
# TiddlyWiki looking for sponsorship
# Open http://federatial.com/
# Federatial looking for opportunities to adapt TW5 for corporate use
!!! Coda
# Cecily: http://jermolene.tiddlyspace.com/cecily
The `link` widget generates links to tiddlers and external URIs. Optionally, hovering over a link can trigger the display of another tiddler as a popup.
! Attributes
* `to` - link target can be a URL
* `hover` - the title of a tiddler containing the popup state to set when hovering over the link
* `qualifyHoverTitles` - if this attribute is present then the title of the hover state tiddler is qualified as described in the PopupMechanism
The `to` attribute is interpreted as an external link if it matches this regular expression:
```
/(?:file|http|https|mailto|ftp|irc|news|data):[^\s'"]+(?:\/|\b)/i
```
! Examples
The `hover` attribute is part of the PopupMechanism.
For example:
```
`$:/MyHover` is {{$:/MyHover}}
<$link to="HelloThere" hover="$:/MyHover">Hover me to see ~HelloThere!</$link>
<$reveal state="$:/MyHover" type="popup">
<div class="tw-drop-down">
{{HelloThere}}
</div>
</$reveal>
```
Renders as:
`$:/MyHover` is {{$:/MyHover}}
<$link to="HelloThere" hover="$:/MyHover">Hover me to see ~HelloThere!</$link>
<$reveal state="$:/MyHover" type="popup">
<div class="tw-drop-down">
{{HelloThere}}
</div>
</$reveal>
! CSS Classes
* `tw-tiddlylink` - applied to all links
* `tw-tiddlylink-external` - applied to external, non-tiddler links
* `tw-tiddlylink-internal` - applied to tiddler links
* `tw-tiddlylink-missing` - applied to tiddler links where the target tiddler doesn't exist
* `tw-tiddlylink-resolves` - applied to tiddler links when the target tiddler does exist
! Configuration macros
Configuration macros can be used to modify the behaviour of the link widget.
!! tw-wikilinks
Links are suppressed if the macro `tw-wikilinks` evaluates to the string `no`. For example:
```
\define tw-wikilinks() no
```
!! tw-wikilink-template
Link targets default to the URL encoded title of the tiddler. The `href` can be templated by defining the configuration macro `tw-wikilink-template`, and including within it the token `$uri_encoded$`. For example:
```
\define tw-wikilink-template() http://tiddlywiki.com/#$uri_encoded$
```
Here is a collection of embedded videos. Try opening and closing tiddlers while the videos are playing; they should not be affected.
<$video src="32001208" type="vimeo" />
<$video src="wvWHnK2FiCk" type="youtube" />
<$video src="santa_claus_conquers_the_martians_ipod" type="archiveorg" />
This syntax enables you to assign arbitrary styles and classes to generated elements. For example:
```
@@color:#f00;
@@text-decoration:underline;
@@.myClass
This is in red!
@@
```
Generates the results:
@@color:#f00;
@@text-decoration:underline;
@@.myClass
This is in red!
@@
The HTML looks like this:
```
<p class="myClass" style="color:rgb(255, 0, 0); text-decoration:underline;">This is in red!</p>
```
Note that classes and styles can be mixed subject to the rule that styles must precede classes. For example
```
@@.myFirstClass.mySecondClass
@@width:100px;.myThirdClass
This is a paragraph
@@
```
Note that the style block doesn't generate any HTML elements itself, but instead causes the styles to be applied to all of the elements contained within the style block. This means that you can assign styles to elements generated from WikiText. For example, here is a list with some additional styles applied:
```
@@background-color:#00f;
* First item
* Second item
* Third item
@@
```
The generated HTML is:
```
<ul style="background-color: #00f;">
<li>First item</li>
<li>Second item</li>
<li>Third item</li></ul>
```
WikiText can include blocks of text that are rendered with an explicit ContentType like this:
```
$$$application/javascript
//This is some JavaScript
var thing = 2 + "one";
$$$
```
This renders as:
$$$application/javascript
//This is some JavaScript
var thing = 2 + "one";
$$$
It is also possible to abbreviate the ContentType to a file extension. For example:
```
$$$.svg
<svg xmlns="http://www.w3.org/2000/svg" width="150" height="100">
<circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red" />
</svg>
$$$
```
This renders as:
$$$.svg
<svg xmlns="http://www.w3.org/2000/svg" width="150" height="100">
<circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red" />
</svg>
$$$
And, finally, a JSON example:
```
$$$.json
{"teapot": "brown","inside":["milk","sugar",23]}
$$$
```
Which renders as:
$$$.json
{"teapot": "brown","inside":["milk","sugar",23]}
$$$
Unknown types render as plain text:
```
$$$text/unknown
Some plain text, which will not be //formatted//.
$$$
```
Which renders as:
$$$text/unknown
Some plain text, which will not be //formatted//.
$$$
A render type can also be specified, causing a particular text rendering to be displayed. For example:
```
$$$text/vnd.tiddlywiki>text/html
This is ''some'' wikitext
$$$
$$$text/vnd.tiddlywiki>text/plain
This is ''some'' wikitext
$$$
```
Renders as:
$$$text/vnd.tiddlywiki>text/html
This is ''some'' wikitext
$$$
$$$text/vnd.tiddlywiki>text/plain
This is ''some'' wikitext
$$$